Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление строки из файла, Продолжаю лететь из универа... 
:(
    Опции темы
Dithur
  Дата 8.5.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.4.2006

Репутация: нет
Всего: нет



gepard, спасибо вам. Жаль, но ту тему закрыли. Вот теперь у меня другая проблема, мне надо удалить определённую строку из файла, подскажете пожалуйста функцию. Правда очень надо, прогу уже через два дня сдавать. 
PM MAIL   Вверх
gepard
Дата 8.5.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: нет
Всего: 40



Что значит "определённую"? Как она определяется: номер, содержимое? 


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
Dithur
Дата 8.5.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.4.2006

Репутация: нет
Всего: нет



В этом у меня тоже проблем не большая возникла, мне надо как-то её опредилить, думал сам смогу, но что-то не получается, я думаю надо при записи каждой строки присваивать ей номер. Ну а вообще в проге должен быть поиск по оределённому ключу всех записей  с таким же ключём. Вот в принципе так и будет определятся строка, но как это запрограммировать я не знаю.

Добавлено @ 17:15 
А как врубить поиск по файлу что-бы он определял нужную мне строку по какому-либо ключу? Сейчас пробую циклом пробежаться по всему файлу с помощью функции feof, но пока что-то не выходит.... 
PM MAIL   Вверх
Coala
Дата 10.5.2006, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 4.5.2006
Где: Москва

Репутация: нет
Всего: 0



А при чём тут базы данных? 
PM MAIL   Вверх
gepard
Дата 10.5.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: нет
Всего: 40



Coala
Суть важна.
Dithur
Алгоритм таков: берём пишем функцию сравнению двух строк.
Далее >> читаем по одному байту из файла строки для сравнения, параллельно сравнивая их с  байтами нашего ключа. Например:
Ключ - "asdf"
Строка в файле:
"kjb;oicvub;orid8t945683p4875!!asdf!!!"
Берём первый байт строки файла:
"k" сравниваем его с первым байтом нашего ключа: "a". Не сходится, берём след. байт строки из файла:
"j", сравниваем с "a" - не подходит опять. Так идём по байтам файла...
На тыкаемся на байт "а", сравниваем с первым байтом ключа - сходится.
Сравниваем след. байт файла со след. байтом ключа: "s" и "s" - сходится.
Так проводим сравнения всех байт. Если сошлись все байты, то значит это та строка, которая нам нужна! 


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
Dithur
Дата 10.5.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.4.2006

Репутация: нет
Всего: нет



Спасибо gepard, но простейшие поиски по ключу я в Паскале реализовывать научился,  smile алгоритм знаю, у меня именно проблема работы с текстовыми файлами в C++, а алгоритм то я свой придумал... Может подскажете литературу с нужными описаниями функций, которые работают с этими злосчастными текстовыми файлами? я весь инет обшарил, всё не то, завтра уже сдавать ...  
PM MAIL   Вверх
likehood
Дата 10.5.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: нет
Всего: 24



скажем, так:
Код

const int MAX_STR_LEN = 1024; // к примеру
char s[MAX_STR_LEN];
FILE *file1, *file2;
// открываем file1 для чтения, file2 для записи
while (!feof(file1))
{
    fgets(s, MAX_STR_LEN, file1);
    //... ищем ключ в строке s
    if (!нашли ключ)
        fputs(s, file2);
}


В file2 будут записаны только строки, не содержащие твой ключ. 
PM MAIL   Вверх
gepard
Дата 11.5.2006, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: нет
Всего: 40



Dithur
Почти во всякой литературе есть методы работы с файлами.
Код

...
int somevalue;
FILE* file = fopen("file.txt", "r");//открыть для чтения
FILE* file2 = fopen("file2.txt", "w");//Открыть дял записи
fscanf(file, "%d", &somevalue);//Считать из файла десятичное число до первого служебного символа
fprintf(file2, "%d", somevalue);//Записать десятичное число в файл.
fclose(file);//закрыть файл
fclose(file2);//Закрыть файл
...

Служебные символы - это символы перехода на след. строку, пробелы, табуляции и .т.п.
Ещё вопросы поконкретнее. 


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0720 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.