Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2009, 22:19   #1
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию работа с файлом в Delphi

Всем доброго времени суток, столкнулся с простейшей задачей и на ней же застрял... Я понимаю, что тема уже избитая, но в подобных разобраться не смог Дан текстовай файл вида:
текст 1
текст 2
текст 3
текст 4
..........
нужно:
1) Найти строчку с текстом совпадающим с Edit1 и заменить на текст Edit2....
2) Найти строчку с текстом совпадающим с Edit3. Удалить её и следущую строчку...
TaYgA вне форума Ответить с цитированием
Старый 26.10.2009, 22:35   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
текстом совпадающим с Edit1
Edit1.Text:='Test';
какие строки подходят:
А)'Test';
Б)'Test35';
В)'6576Testklhkh';
?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.10.2009, 22:53   #3
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Смысл я понимаю, я не понимаю как записать программно...
Я представляю себе это так:
1)
Код:
  var
   f: TextFile;
   a: String;
begin
  AssignFile(f,'test');
  Reset(f);
  while not Eof(f) do begin
    Readln(f,a);
      if (Edit1.Text=a)  then a:= Edit2.Text;
       break;
  end;
  Rewrite(f);
  Write(f,a);
  CloseFile(f);
end;
В этом случаи программа перепишет весь файл на значение переменной а... Как сделать подругому я не знаю...
2) Аналогично (1) находим строку, но как удалить две строки я не знаю
TaYgA вне форума Ответить с цитированием
Старый 26.10.2009, 23:17   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

может TStringList использовать?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.10.2009, 23:22   #5
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Ну вообщето по условию задачу нужно решить через Edit
TaYgA вне форума Ответить с цитированием
Старый 26.10.2009, 23:42   #6
Proof
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 63
По умолчанию

TaYgA

TStringList использовать так, загрузить в него текстовый файл, произвести необходимые изменения (замена строки) и сохранить в этот файл уже измененные данные.

Так же можно использовать массив. Загрузив туда данные, если тектовый файл не очень большой.

Насколько мне известно, напрямую изменить текстовик нельзя.
Proof вне форума Ответить с цитированием
Старый 26.10.2009, 23:48   #7
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Это плохо Поидеи пользователь не должен видеть, что именно сохранено в файле. Он знает значение всего одной строчки и от неё должен крутиться.... Ну ладно, буду думать как другим путём можно пойти... Спасибо за внимание к моей теме

Попробуй пойти вашим путём.... Скажите, а где находится компанент TStringList. И если можно, я бы хотел загружать в ListBox... Как это будет выглядить?!?!

Последний раз редактировалось Stilet; 28.10.2009 в 07:53.
TaYgA вне форума Ответить с цитированием
Старый 27.10.2009, 01:23   #8
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Самое, наверное, правильное это создать список класса TStringList (как уже было написанно выше) и занести туда фаил. Потом обработь этот список и сохранить.

Для этого:
List : TStringList;
List := TStringList.Creat;

А после: List.Free;

Также можно(если изменения не сложные) создать, на время работы, временый фаил. Например с другим расширением, но темже именем. И в конце удалить исходный фаил, а у временого изменить расширение.

Если нужен регитсронезависимый(во какое слово) поиск то юзай AnsiLowerCase или же её противоположность AnsiUpperCase.

Цитата:
Скажите, а где находится компанент TStringList. И если можно, я бы хотел загружать в ListBox
Вкладка Standart 11-ая позиция.
ListBox1.Items.LoadFromFile(...)
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 28.10.2009, 01:27   #9
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Спасибо Буду пробываить
TaYgA вне форума Ответить с цитированием
Старый 29.10.2009, 00:23   #10
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Всем доброго времени суток... Никак не даёт покоя эта задачка Скажите, а возможно ли в Delphi считывать файл построчно?!? Т.е. я хочу, чтоб при чтении файла прога брала первую строчку и сравнивала с Edit1, если они не равны, то эту строчку записывала в другой фал. Когда файл и Edit1 станут равны, то в новый файл запишется Edit2, после чего записать оставшиеся строки в другой файл без изменений. Если возможно так сделать, то привидите пожалуйсто маленький примерчик, как сравнивать файл по строчно с Edit1 и записывать в новый файл....
TaYgA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлом lg12 Помощь студентам 7 24.08.2009 08:33
С++ работа с файлом. НедоВовик Помощь студентам 1 05.07.2009 18:22
Работа с файлом в (Delphi/pascal) Mashul'ka Помощь студентам 5 14.05.2009 16:54
Работа с текстовым файлом (delphi). Помогите доделать программу. Snord Помощь студентам 1 14.12.2007 14:10