Форум: "Начинающим";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
ВнизКак вывести одной строкой сумму всех строк текстового файла Найти похожие ветки
← →
Igor23 (2008-02-19 21:17) [0]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;
← →
имя (2008-02-19 21:20) [1]Удалено модератором
← →
Anatoly Podgoretsky © (2008-02-19 21:20) [2]> Igor23 (19.02.2008 21:17:00) [0]
Странный какой то код.
← →
Семеныч (2008-02-19 21:32) [3]Странный код... да он не странный, тут вообще беда полная...
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:35) [4]Вдогонку: а суперфункцию LinesCount выкиньте за ненадобностью.
← →
Igor23 (2008-02-19 21:40) [5]А что странного? Сначала срабатывает функция LinesCount она в реале выше обраб нажатия кнопки, она работает на ура считает. А вот дальше вопрос. Подскажите плиз как нормально сделать
← →
trubin © (2008-02-19 21:43) [6]
> Подскажите плиз как нормально сделать
Вроде подсказали
← →
Igor23 (2008-02-19 21:48) [7]Всем спасибо! СЕМЕНЫЧУ отдельное МЕРСИ ;-)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c