Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.16;
Скачать: CL | DM;

Вниз

Как вывести одной строкой сумму всех строк текстового файла   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
2-1203124705
DJ_UZer
2008-02-16 04:18
2008.03.16
Ссылка


15-1202221266
Пробегал...
2008-02-05 17:21
2008.03.16
RegisterServiceCtrlHandlerEx в win9x?


2-1202928676
savyhinst
2008-02-13 21:51
2008.03.16
HOWTO_ISAPI


8-1177042797
Dmitriy_O.
2007-04-20 08:19
2008.03.16
Как сделать "вспышку" тоесть чтобы картинка засветилась яркими цв


15-1202385141
Сергей М.
2008-02-07 14:52
2008.03.16
SpamiHillator