Форум: "Потрепаться";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
Вниз
Программирование в Delphi Найти похожие ветки
← →
Irina (2003-04-04 09:09) [0]Как из текстового файла скопировать последнюю строку?
← →
MBo (2003-04-04 09:11) [1]файл большой?
Если нет, читай readln до конца файла и используй последнюю строку или TStringList.ReadFromFile
← →
Внук (2003-04-04 09:53) [2]Открыть текстовый файл.
Прочитать по очереди все строки.
Последнюю скопировать (куда, неизвестно).
Закрыть файл.
← →
Irina (2003-04-04 09:55) [3]Внучек, а по подробней можно? :)
← →
Skier (2003-04-04 09:57) [4]>Irina
var
AStrList : TStringList;
begin
AStrList := TStringList.Create;
try
AStrList.LoadFromFile(...FilePath...);
ShowMessage(AStrList[AStrList.Count - 1]);
finally
AStrList.Free;
end; //try
end;
← →
Palladin (2003-04-04 10:05) [5]открыть в FAR
найти последнюю строчку
выделить
нажать Ctrl-Ins
← →
Внук (2003-04-04 10:06) [6]Открываем текстовый файл.
Подробно (не пропусткая ни одной строчки) читаем его.
Последнюю строку копирум в неизвестное по условию место очень подробно, не пропуская ни одной буквы.
Закрываем файл.
← →
alexteam (2003-04-04 10:11) [7]
> Открываем текстовый файл.
> Подробно (не пропусткая ни одной строчки) читаем его.
> Последнюю строку копирум в неизвестное по условию место
> очень подробно, не пропуская ни одной буквы.
> Закрываем файл.
ты бы меня видел :)))
← →
Anatoly Podgoretsky (2003-04-04 10:13) [8]
var
F: TextFile;
S: string;
begin
AssignFile(F,"d:\Path\xxx.txt");
Reset(F);
S
← →
Anatoly Podgoretsky (2003-04-04 10:14) [9]while Eof(f) do begin
ReadLn(F,S);
end;
← →
Думкин (2003-04-04 10:15) [10]not(Eof(f))?
← →
pasha676 (2003-04-04 10:18) [11]2Думкин
Понятное дело. Впрочем когда такие вопросы задают могут не знать о EoF запросто.
← →
Anatoly Podgoretsky (2003-04-04 10:20) [12]Думкин © (04.04.03 10:15)
Да, надо внимательнее быть :-(
pasha676 (04.04.03 10:18)
Многие про него и текстовые файлы забыли или не знали вообще.
← →
alexteam (2003-04-04 10:20) [13]если файл по типу textfile то так
за неимением делфей пишу от руки :)) но работать должно
function laststring(filename:string):string;
var
fil:text;
last_string:string;
begin
if fileexists(filename) then
begin
assignfile(fil,filename);
reset(fil);
while not eof(fil) do
readln(fil,last_string);
result:=last_string;
end
else result:="";
end;
использование
showmessage(laststring("c:\log.txt"));
пиво оставте при себе :))
← →
Palladin (2003-04-04 10:24) [14]
> alexteam © (04.04.03 10:20)
а по твоему о чем речь была с самого начала?
ЗЫ "Буратино" тебе, а не пиво...
← →
alexteam (2003-04-04 10:33) [15]> Palladin
ты про фар вспомни :))))
гы а текстовые файлы бывают разные :) ведь file of char тож текстовый :)) а читается чуть по другому
← →
Anatoly Podgoretsky (2003-04-04 10:34) [16]alexteam © (04.04.03 10:20)
По сути почти правильно, но есть ии ошибки и амечания
Ошибка 1 - остался открытый файл
Замечание 1
fil:text; -> fil: TextFile; а то можно горя хлебнуть
Замечание 2
readln(fil,last_string);
result:=last_string;
readln(fil,Result);
Замечание 3
Лучше не прятать ошибку отсутствия файла, а позволить системе возбудить исключение.
← →
Palladin (2003-04-04 10:40) [17]фар это прикол...
самый оптимальный способ предложил MBo
file of char и textfile и text это все представление delphi
файл же все время один и тотже...
← →
alexteam (2003-04-04 10:45) [18]
> Anatoly Podgoretsky
спсибо про закрытие файла забыл :)
readln(fil,Result); мля :(
в общем учитывая замечания
function laststring(filename:string;var last_string:string):boolean;
var
fil:text;
begin
if fileexists(filename) then
begin
assignfile(fil,filename);
reset(fil);
while not eof(fil) do readln(fil,last_string);
closefile(fil);
result:=true;
end
else result:=false;
end;
использование
str:string;
......................................
if laststring("c:\log.txt",str) then
showmessage(str) << используем полученую строку
else showmessage("file not found"); << нету файла
так и хочется ctrl+f9 нажать а нету :((
← →
alexteam (2003-04-04 10:47) [19]
> Palladin © (04.04.03 10:40)
а читаются они члучайно не по разному char и text
(я на этом "собаку сьел")
← →
Palladin (2003-04-04 10:55) [20]если перенести понятие текстового файла на программирование, то:
file of char это типизированый файл содержащий эелементы типа char
text (textfile) - это файл рассматривающийся как входной файл для текста с разделителем CRLF
и чтение из них различается по реализиции..
хотя для тебя это выглядит прозрачно...
← →
Palladin (2003-04-04 10:56) [21]соответственн твое утверждение что file of char это текстовый файл не верно
← →
alexteam (2003-04-04 11:25) [22]> Palladin
рядовой пользователь может не отличить обычный text файл от char файла особенно если просматривает их notepad-ом(99.9% что ты с начала тож об этом не подозревал) а вот с точки зрения програмиста это совсем два разных типа файлов которые отличаются по реализации чтения/записи в первую очередь
короче решение есть, если там ошибки :))) (т.к. не компилировалось) то сообщай о них
← →
Anatoly Podgoretsky (2003-04-04 11:39) [23]Хранение и чтение, разные вещи.
Чтение это интерпритация файла, считаем ли мы его текстовым или нет.
← →
Palladin (2003-04-04 11:42) [24]ну а это чьи слова...
ведь file of char тож текстовый
я до тебя пытаюсь донести то что совсем не обязательно он текстовый
давай не будет путать представления, мы разговариваем о файлах не как рядовые пользователи, а как те люди которым с ними приходится работать программно...
delphi32.exe это тоже file of char
но при использовании textfile найдет коса на камень...
и на чем ты тут собаку то съел?
при понимании того что делаешь собаку есть не придется...
← →
alexteam (2003-04-04 11:42) [25]> Anatoly Podgoretsky
1. я тебя на чате давно не видел где пропал ? :)
2. ошибок и замечаний нету ? :))
← →
alexteam (2003-04-04 11:45) [26]> Palladin
не про собаку расказывать не буду :)) жуть, и еще невкусная :))))) так ты и не ответил по коду замечаний нету ???
← →
Palladin (2003-04-04 11:53) [27]замечание одно...
если в конце файла пустая строка, то выходит файла нет, и будешь ты рвать и метать, "Да как же так!!! Вот же он!!!!"
← →
alexteam (2003-04-04 11:56) [28]ты код повнимательней посмотри :)))
← →
alexteam (2003-04-04 11:58) [29]а особенно
if fileexists(filename) then
begin
...............
result:=true;
end
else result:=false;
← →
alexteam (2003-04-04 11:59) [30]мож мне еще коментарии написать ?????
← →
Palladin (2003-04-04 12:03) [31]хе...
вторая версия нормльная, но таки долгая...
function LastString(p_strFileName):string;
begin
with TStringList.Create do
try
LoadFromFile(p_StrFileName);
Result:=Strings[Count-1];
finally
Free;
end;
end;
← →
alexteam (2003-04-04 12:05) [32]обработку ошибки "file not found" забыл :))
← →
Palladin (2003-04-04 12:10) [33]
> alexteam © (04.04.03 12:05)
при вызове
try
strLastString:=LastString("MyFile");
except
обработка ошибки по поводу не найденого файла...
end;
← →
alexteam (2003-04-04 12:11) [34]а юзверь об этом как узнает ???? гыыыы
← →
Palladin (2003-04-04 12:11) [35]Почитай замечание 3 от
Anatoly Podgoretsky © (04.04.03 10:34)
верное между прочим замечание...
← →
Danilka (2003-04-04 12:12) [36]alexteam © (04.04.03 12:05)
нет не забыл ;))
Palladin © (04.04.03 12:03)
но вот-это забыл:
function LastString(p_strFileName :string):string;
← →
Palladin (2003-04-04 12:13) [37]
> alexteam © (04.04.03 12:11)
хм
для особо одаренных
try
strLastString:=LastString("MyFile");
except
Application.ShowMessage("File not found","Error");
end;
← →
alexteam (2003-04-04 12:13) [38]вызовет твою функцию нифига не получит и будет продолжать обрабатывать пустую строку в последующей части кода :))
← →
Danilka (2003-04-04 12:13) [39]alexteam © (04.04.03 12:11)
сделай просто вот-так:
strLastString:=LastString("MyFile");
без try...except
и сразу узнаешь ;))
← →
Palladin (2003-04-04 12:14) [40]
> Danilka © (04.04.03 12:12)
хе :) вот это точно косяк...
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.011 c