Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись, чтение, редактирование, удаление данных из файлов на С++
 
 автор: Lelik   (26.11.2006 в 16:02)   письмо автору
 
 

собственно, как ?...

   
 
 автор: cheops   (26.11.2006 в 16:16)   письмо автору
 
   для: Lelik   (26.11.2006 в 16:02)
 

Хм... а что хотите записывать? Для ввода вывода используется либо библиотека ввода-вывода C, либо библиотека вывода вывода C++. Порядок работы с файлами такой же как и в PHP, открываем файл, записываем или читаем информацию, закрываем файл. Например, следующая программа, запрашивает у пользователя строку и ищет в файле linux.words похожие слова (в стиле C)
#include <iostream>
using namespace std;

void strtolower(char *str);

int main()
{
  FILE *fp;
  // Максимальное количество символов
  const int LENGTH = 80;
  // Текущая строка
  char current[LENGTH];
  // Начальные символы строки
  char prefix[LENGTH];

  cout << "Введите строку ";
  fgets(prefix, LENGTH, stdin);

  fp = fopen("linux.words", "r");
  if(fp == NULL)
  {
    cout << "Невозможно открыть файл: " << ferror(fp) <<  "\n";
    return 1;
  }

  // Количество слов
  int count_words = 0;
  strtolower(prefix);
  while(!feof(fp))
  {
    fgets(current, LENGTH, fp);
    strtolower(current);
    if(!strncmp(current, prefix, strlen(prefix) - 1))
    {
      cout << current;
      count_words++;
    }
  }
  fclose(fp);

  cout << "Количество найденных слов - " << count_words << "\n";

  return 0;
}

void strtolower(char *str)
{
  for(char *ch = str; *ch; ch++)
  {
    *ch = tolower(*ch);
  }
}

   
 
 автор: Lelik   (26.11.2006 в 16:32)   письмо автору
 
   для: cheops   (26.11.2006 в 16:16)
 

в двух словах: из файла сделать БД - запись данных в строку - разделитель табуляция, новая строка - новый раздел данных (на С++, пишу в Билдере 6)

   
 
 автор: Boss   (26.11.2006 в 18:04)   письмо автору
 
   для: Lelik   (26.11.2006 в 16:32)
 

Добавление нового раздела можно сделать следующим образом:


#include <iostream>

using namespace std;

int main()
{
    char name[80];
    char ch; // для Y/N
    
    cout << "Новый раздел (Y/N) ";
    cin >> ch;

    do
    {
        cout << "\nName:"; // Название нового раздела
        cin >> name;

        FILE * fp;

        fp = fopen("text.txt", "a");
        
        if (fp == NULL) // Если файл не открылся
        {
            cout << "FILE ERROR";
            getchar();
            return 1;
        }

        fputs(name, fp); // Запись в файл
        fputs("\n", fp); //табуляция

        fclose(fp);

        cout << "Новый раздел (Y/N) ";
        cin >> ch;
    }
    while(ch == 'y');

    getchar(); // задержка экрана
    return 1;
}


Если нужно чтение, то отпишись ...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования