| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Как удалить строку ??? |
| Автор: I0207 1.2.2006, 18:43 |
| Люди!!!! Поможите!!!! Как удалить строку из текстового файла??? киньте прогу кто может!!!! Файл наз-ся phone.txt . Как удалить строку с именем Игорь(например)??? |
| Автор: _hunter 1.2.2006, 18:55 |
| читаеш все строки из файла и пишеш их в другой файл. если строка равна "Игорь(например)" -- не пишеш ее в другой файл. потом другой файл переименовываеш в "наз-ся phone.txt". ( простейший вариант без всякого подобия кеширования ) |
| Автор: oper54 1.2.2006, 19:03 |
| Или так сказать, с кешированием В билдере знаю есть чудный класс TStringList (список AnsiString), а у него метод LoadFile(точно не помню), ну а дальше совсем просто, удаляешь елемент списка с в стоке которого есть имя Игорь(AnsiString дает возможность искать в строке подстроку), потом перезаписываешь файл |
| Автор: I0207 2.2.2006, 11:05 |
| Добавлено @ 11:15 Oper 54, как это сделать??? Поможи а???? А можно как нибудь через Консоль Визард распечатать txt файл??? а лучше то что начёрном экране. |
| Автор: _hunter 2.2.2006, 11:27 |
| I0207, проги пишут не в этом разделе. тебе в раздел работа... что такое " Консоль Визард"? |
| Автор: AntonChik 2.2.2006, 13:07 |
| чел имеет ввиду File->New->Other->Console Wizard... удобная штука писать консольные приложения из-под Билдера... |
| Автор: Artemon 2.2.2006, 13:43 | ||
| 100% - рабочий код.
|
| Автор: I0207 2.2.2006, 15:56 |
| Попробую, заранее спасибо, однако если не получится то попрошу помощи ещё!!! |
| Автор: I0207 2.2.2006, 16:58 |
| #define FNAME "c:\\phone.txt\0" char fname[20]=FNAME; FILE *out; char fam[15]; char name[15]; char tel[9]; if((out=fopen(fname,"rt")) == NULL) //вот я открыл его в режиме чтения а дальше как быть??? { printf("erorr"); getch(); } ??????????????????????? fclose(out); |
| Автор: Artemon 2.2.2006, 17:39 |
| Ты что на C перешел? Или ты на столько крут, что не хочешь пользоваться приведенным ранее кодом (причем рабочим) ? |
| Автор: I0207 2.2.2006, 19:05 |
| Добавлено @ 19:09 просто там я привел то что ранее было создано, а теперь просто к тому надо дописать удаление!!! Извиняюсь конечно за свою тупость,ну разъясни а??!!!?? Добавлено @ 19:15 Да если что я всё делаю в С++ Builder Console Wizard |
| Автор: I0207 2.2.2006, 21:09 |
| Не получается у меня им воспользоваться, обьясни как что и куда надо дописывать??? |
| Автор: Partizan 3.2.2006, 01:37 |
| просто при создании консольного проекта надо подключить файл с объявлением класса TStringList |
| Автор: I0207 3.2.2006, 07:50 |
| А как это сделать??? В начале программы написать #include<TStringList>??? Или как иначе ??? |
| Автор: Artemon 3.2.2006, 08:19 |
| Ладно так уж и быть............. 1) Забудь про cвою консоль. 2) Открыть C++Builder 3) File->New->Application; 4) С панели Standart перенеси кнопку (button) на форму. 5) Два раза щелкни мышью по кнопке - появится участок кода, в который нужно вставить приведенный ранее мной код. 6) File->Save. 7) В каиалоге, в котром сохранил программу создай свой любимый файл phone.txt 8) Пользуйся. P.S. Мне почему-то кажется что ты пишешь не в C++Builder а в turbo C. Если это так - ты просто скажи, потому что решение будет совсем другим, мало того, код C++Builder в turbo C работать не будет. |
| Автор: I0207 3.2.2006, 09:47 |
| |
| Автор: Artemon 3.2.2006, 10:07 | ||
P.S. В Turbo C этот код использовать нельзя. Готовая программа. |
| Автор: I0207 3.2.2006, 13:19 |
| |
| Автор: _hunter 3.2.2006, 13:27 |
| "на печать" это на принтер или в консоль? |
| Автор: I0207 3.2.2006, 14:03 |
| Удаляется та строка на которой только слово Igor, а мне желательно удалить строку в которой "Yunusov Igor" при этом введя с клавиатуры "Yunusov" Как такое сделать???(моя последняя просьба) Добавлено @ 14:04 |
| Автор: _hunter 3.2.2006, 14:47 |
| зависит от среды. в Билдере у класса AnsiString есть метод Pos() в С функция strstr() |
| Автор: I0207 3.2.2006, 15:06 |
| и что??? допустим у меня файл phone. txt как его распечатать??? Добавлено @ 15:07 Artemon!!! прочти пожалуйста после своего кода ОЧЕНЬ ВАЖНО!!! |
| Автор: _hunter 3.2.2006, 15:48 |
| скопируй его в файл с именем LPT1 |
| Автор: I0207 3.2.2006, 21:52 |
| Artemon посмотри Please!!!! посмотри после своей программы которую ты здесь написал!!!! |
| Автор: Artemon 4.2.2006, 15:14 | ||||
Замени строку
на
После этого изменения - программу будет удалять строки, в которых найдет заданную подстроку. |
| Автор: I0207 5.2.2006, 12:39 |
| |
| Автор: Artemon 6.2.2006, 08:42 | ||||||
Добавь в начало main следующий код:
замени строку
на
|
| Автор: I0207 6.2.2006, 16:42 |
| Спасибо всем, тема закрыта!!! |