Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизРедактирование файлов Найти похожие ветки
← →
defen (2004-04-16 13:58) [0]Здравствуйте, Пожалуйста помогите!
Необходимо установить связь с файлом (txt), найти определенную строчку в нем (поиск естественно по содержимому), заменить добавить на другие данные и выйти, сохранив изменения без запроса!
Заранее спасибо!
← →
ПЛОВ (2004-04-16 14:18) [1]Самое главное меню\Программы\Borland Delphi X\Help\Using Delphi
Index\File input and output
:)
← →
defen (2004-04-16 14:24) [2]Может я чего-то не понял?! Но идея такова:
Фаил поступает с программой. В него заливается инфа ну скажем об
адресахб если кто-то переехал, надо заменить существующую надпись на новую! Создать запись проблем нет, а вот отискать нужную и перезаписатб......?
← →
$tranger © (2004-04-16 14:28) [3]Используй тогда несколько MEMO"к и юзай
Memo1.Lines.Strings[Index]
← →
Anatoly Podgoretsky © (2004-04-16 14:29) [4]А отыскание делается с помощью =
← →
defen (2004-04-16 14:33) [5]Прошу прощения, а не могли бы вы помочь исходником? Я только начинаю и мне не всепонятно!
← →
tesseract © (2004-04-16 16:52) [6]Что ту понимать??????
Тестовой файл
Структура файла из строк закансиваются они переводом строки (#13#10)
Причём метод WriteLN(File,value) автоматом это делает
А ReadLN делает то же наоборот - считывает строку - метод поиска - считывавем сравнимаем - и так до EOF. А перезапись, если у тебя строки по длине варьируются, может убить всё, так что придётся тебе считывать весь файл в память, а потом перезаписывать его с нуля.
Наиболее простой метод, и чаще всего используемый - это БД - там всё это реализуется не просто а очень просто, включая полную абстракцию от происходящего на диске, быстрый поиск запись и тд.
← →
8ung © (2004-04-16 21:49) [7]
var
\\сохраняем в файл new.txt
st : TStringList;
i,j : integer;
new : string;
vstavka : string;
begin
vstavka := "new text";\\чем заменить
st := TStringList.Create;
st.LoadFromFile("C:\my.txt");\\открываем файл
st.Find("search",i);\\ищем строку, в которой есть слово search
new := copy(st.Strings[i],1,pos("search",st.Strings[i])-1);\\копируем в new символы до начала слов search
new := new + vstavka + copy(st.Strings[i],pos("search",st.Strings[i])+Length("search"),Length(st.Strings[i])-1);\\добавляем в new то, что нужно вставить и добавляем символы, которые стоят после search
st.strings[i] := new;\\меняем строку
st.savetofile("c:\new.txt");
← →
8ung © (2004-04-16 21:51) [8]
var
st : TStringList;
i : integer;\\j-не нужно
new : string;
vstavka : string;
← →
Паникёр (2004-04-16 23:09) [9]2 8ung ©
Коментарии конечно хорошо.
>>st := TStringList.Create;
А где try except??
st.free; // - вообще нет,
память уже не освобождаем?
И что за vstavka - Почему на транслите? 8-)
← →
defen (2004-04-17 07:26) [10]Все нормально, спасибо всем за помощь!
← →
8ung © (2004-04-17 12:08) [11]
> >>st := TStringList.Create;
> А где try except??
> st.free; // - вообще нет,
> память уже не освобождаем?
>
> И что за vstavka - Почему на транслите? 8-)
И на старуху быват порнуха... ;-)))))))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.066 c