Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизНайти текст и заменить его Найти похожие ветки
← →
Gex88 (2006-11-15 12:39) [0]Добрый день ! Подскажите пожалуйста как открыть текстовый файл и программно найти текст и заменить его на другой текст. Подкиньте плииз функцию.
← →
Percent (2006-11-15 12:43) [1]TextFileOpenReplaceSave();
← →
Gex88 (2006-11-15 12:45) [2]> TextFileOpenReplaceSave();
А как это работает ?
← →
KilkennyCat © (2006-11-15 12:45) [3]AssignFile(F, "")
Reset
Read
Close
и
function AnsiReplaceText(const AText: string; const AFromText: string; const AToText: string): string;
← →
Jeer © (2006-11-15 12:49) [4]Вот так и работает:
procedure TextFileOpenReplaceSave()
begin
AssignFile(F, "")
Reset..
Read..
Close..
// и
AnsiReplaceText(const AText: string; const AFromText: string; const AToText: string): string;
end;
← →
Anatoly Podgoretsky © (2006-11-15 13:03) [5]> Gex88 (15.11.2006 12:39:00) [0]
Может не стоит искать, а сразу заменять?
← →
Gex88 (2006-11-15 13:05) [6]Насколько я понимаю "AnsiReplaceText" возвращающая строку которая является результатом замены строки AFromText найденная в AText, строкой AToText... А как ее теперь искать в определеннов файле?
понимаю вопрос тупой по этому в конференции начинающим))...
← →
Gex88 (2006-11-15 13:06) [7]> Может не стоит искать, а сразу заменять?
Подскажите как это сделать ....
← →
Anatoly Podgoretsky © (2006-11-15 13:07) [8]Тупой?
Вопроса вообще нет, где то что ты уже сделал?
Или тебе уже готовый код, открытия, замены и сохранения?
← →
Anatoly Podgoretsky © (2006-11-15 13:07) [9]StringReplace
← →
KilkennyCat © (2006-11-15 13:10) [10]> [6] Gex88 (15.11.06 13:05)
если AText есть весь техт файла, то зачем еще что-то искать? Эта функция и находит, и заменяет, и возвращает готовый текст.
Единственный нюанс - заменены будут все нахождения.
← →
Anatoly Podgoretsky © (2006-11-15 13:13) [11]> KilkennyCat (15.11.2006 13:10:10) [10]
А вот за StringReplace подобного самовольства не замечено
← →
Gex88 (2006-11-15 13:14) [12]Теперь вроде бы начинаю врубаться..
> Или тебе уже готовый код, открытия, замены и сохранения?
Не помешал бы, если это возможно.
← →
Anatoly Podgoretsky © (2006-11-15 13:17) [13]> Gex88 (15.11.2006 13:14:12) [12]
Подожди, сейчас очередь выстроится, это оэначает, что это возможно.
← →
KilkennyCat © (2006-11-15 13:18) [14]> [12] Gex88 (15.11.06 13:14)
готовый код невозможно, хотя бы потому, что: мы не знаем всей задачи (например, совершенно не сказано, что потом делать с текстом, требуется ли заменять все вхождения...); это платно; и самое главное: не так научит, как самостоятельная работа.
← →
Anatoly Podgoretsky © (2006-11-15 13:22) [15]> KilkennyCat (15.11.2006 13:18:14) [14]
А для самостоятельно работы приведен и алгоритм и все необходимые функции, осталось только последнее прочитать наконец справку.
← →
from kz (2006-11-15 13:23) [16]Если правильно понял:
SL:=TStringList.Create;
SL.LoadFromFile("text.txt");
For i:=0 to Sl.Count-1 do
begin
SL.Strings[i]:=(AnsiReplaceText(SL.Strings[i],"Казнить нельзя, помиловать","Казнить, нельзя помиловать"));
← →
KilkennyCat © (2006-11-15 13:27) [17]> [16] from kz (15.11.06 13:23)
нет. неэкономично.
← →
Gex88 (2006-11-15 13:27) [18]from kz
Этот метод будет работать с очень большими файлами ?
← →
from kz (2006-11-15 13:28) [19]2 KilkennyCat
В смысле ?
2 Gex
Нет.
← →
KilkennyCat © (2006-11-15 13:29) [20]Ну вот, выясняется, что и файлы очень большие... для очень больших файлов стандартные функции работы со строками могут оказаться несколько тормознутыми...
← →
from kz (2006-11-15 13:31) [21]А "TStringList" какой объем файла максимум сможет использовать ?
Что-то забыл...
← →
KilkennyCat © (2006-11-15 13:34) [22]> [19] from kz (15.11.06 13:28)
> 2 KilkennyCat
> В смысле ?
зачем использовать глобальную функцию построчно?
зачем вообще работать построчно, если в задании ничего о строках не говорилось?
← →
Anatoly Podgoretsky © (2006-11-15 13:39) [23]> from kz (15.11.2006 13:23:16) [16]
А что будешь делать если это окажется так
Казнить нельзя,
помиловать
← →
from kz (2006-11-15 13:39) [24]Ну он же написал как заменить какой либо текст в файле, выходит, что определенный текст разбросан по файлу и его нужно заменить. Если не перебирать каждую строку в файле то как загрузить весь файл в функцию?
← →
Anatoly Podgoretsky © (2006-11-15 13:39) [25]> from kz (15.11.2006 13:31:21) [21]
Большого, а что?
← →
Anatoly Podgoretsky © (2006-11-15 13:40) [26]> from kz (15.11.2006 13:31:21) [21]
Ах да, если это StringList то зачем работать со строками?
← →
from kz (2006-11-15 13:40) [27]2 Anatoly Podgoretsky
Сравнивать видимо...
← →
from kz (2006-11-15 13:46) [28]> с большими файлами
Что-то типа "TResourceStream" использовать надо....
← →
KilkennyCat © (2006-11-15 13:48) [29]> [24] from kz (15.11.06 13:39)
Если не перебирать каждую строку в файле
> то как загрузить весь файл в функцию?
В Вашем варианте TStringList.Text например.
← →
Anatoly Podgoretsky © (2006-11-15 14:10) [30]> from kz (15.11.2006 13:39:24) [24]
А это что? SL:=TStringList.
F1 + TStringList
← →
from kz (2006-11-15 14:54) [31]2 Anatoly Podgoretsky
SL:=TStringList.Create;
Ты прекрасно знал, что я имел введу, повыпендриваться решил видимо.
2 KilkennyCat
> TStringList.Text
Действительно, а я даже не подумал.
← →
Anatoly Podgoretsky © (2006-11-15 16:57) [32]> from kz (15.11.2006 14:54:31) [31]
Ты так думаешь, а если еще подумать?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.045 c