![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вывести одной строкой сумму всех строк текстового файла
Igor23 © (2008-02-19 21:17:00)procedure TForm2.Button4Click(Sender: TObject);
var
i,n:integer;
F:textfile;
S:string;
begin
n:=LinesCount('gam.txt');
assignfile(F,'gam.txt');
reset(F);
S:='';
for i:=1 to n do
begin
readln(F,S);
S:=S+S[i];
end;
Showmessage(S);// ???? почему только первая строка
closefile(F); а не сумма строк???
end;
function LinesCount(const Filename: string): Integer;
var
HFile: THandle;
FSize, WasRead, i: Cardinal;
Buf: array[1..4096] of byte;
begin
Result := 0;
HFile := CreateFile(Pchar(FileName), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if HFile <> INVALID_HANDLE_VALUE then
begin
FSize := GetFileSize(HFile, nil);
if FSize > 0 then
begin
Inc(Result);
ReadFile(HFile, Buf, 4096, WasRead, nil);
repeat
for i:= WasRead downto 1 do
if Buf[i] = 10 then
Inc(Result);
ReadFile(HFile, Buf, 4096, WasRead, nil);
until WasRead = 0;
end;
end;
CloseHandle(HFile);
end;
Igor23 (2008-02-19 21:48:00) [1]Всем спасибо! СЕМЕНЫЧУ отдельное МЕРСИ ;-)
trubin (2008-02-19 21:43:00) [2]
> Подскажите плиз как нормально сделать
Вроде подсказали
Igor23 (2008-02-19 21:40:00) [3]А что странного? Сначала срабатывает функция LinesCount она в реале выше обраб нажатия кнопки, она работает на ура считает. А вот дальше вопрос. Подскажите плиз как нормально сделать
Семеныч (2008-02-19 21:35:00) [4]Вдогонку: а суперфункцию LinesCount выкиньте за ненадобностью.
Семеныч (2008-02-19 21:32:00) [5]Странный код... да он не странный, тут вообще беда полная...
procedure TForm2.Button4Click(Sender: TObject);
var
F: TextFile;
Result, S: string;
begin
AssignFile(F, 'gam.txt');
Reset(F);
try
Result := '';
while not EoF(F) do
begin
Readln(F, S);
Result := Result + S;
end;
finally
CloseFile(F);
end;
ShowNessage(Result);
end;
Другой вариант:
procedure TForm2.Button4Click(Sender: TObject);
begin
with TStringList.Create do
try
LoadFromFile('gam.txt');
ShowMessage(Text);
finally
Free;
end;
end;
(2008-02-19 21:20:00) [6]Удалено модератором
Anatoly Podgoretsky (2008-02-19 21:20:00) [7]> Igor23 (19.02.2008 21:17:00) [0]
Странный какой то код.