Вопрос № 172967: Здравствуйте. Помогите решить "задачку"... В коде не получается сделать, чтобы найденные данные (строки) записывались в новый файл. Т.е. необходимо правильно записать POS. Файл создается, но пустой, хотя строки такие в тексте встречаются...
Вопрос № 172967:
Здравствуйте. Помогите решить "задачку"... В коде не получается сделать, чтобы найденные данные (строки) записывались в новый файл. Т.е. необходимо правильно записать POS. Файл создается, но пустой, хотя строки такие в тексте встречаются.
Отправлен: 06.10.2009, 12:04
Вопрос задал: warafa, Посетитель
Всего ответов: 1 Страница вопроса »
Отвечает sir Henry, Модератор :
Здравствуйте, warafa.
Функция Pos() ищет подстроку в строке и если находит, возвращает позицию первого символа в строке. Вот смотрите, текстовый файл можно довольно просто загрузить в StringList. Далее, просматриваем каждую строку этого самого StringList и функцией Pos() проверяем, содержится ли заданная в edstr подстрока или нет. Если да, то заносим текущую строку из первого StringList во второй. Как только просмотрели весь первый StringList, сбрасываем второй StringList в файл на диск:
Код:
Var st1, st2: TSringList; i: Integer; Begin st1:=TStringList.Create; st2:=TStringList.Create;
If OpenDialog1.Execute Then //Запрашиваем имя файла Begin st1.LoadFromFile(OpenDialog1.FileName); //Открываем фай
л, загружаем его в первый StringList For i:=0 To st1.Count-1 Do //Просматриваем его с первой по последнюю строку If Pos(edstr.Text, st1[i])>0 Then //Если заданная строка найдена st2.Add(st1[i]); //Загружаем ее во второй StringList st2.SaveToFile('Result.txt'); //Сохраняем результат из второго StringList'а в файл End; st1.Free; st2.Free; End;
Ответ отправил: sir Henry, Модератор
Ответ отправлен: 06.10.2009, 18:41 Россия, Красноярск
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 255089
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.