Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кол-во строк в файле 
:(
    Опции темы
uranpro
Дата 2.4.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



как узнать Кол-во строк в файле F:TextFile ?


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Данкинг
Дата 2.4.2009, 17:19 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Загрузить в TStrings и получить TStrings.Count. Или же перебрать строки файла от начала до конца с увеличением счётчика.

Это сообщение отредактировал(а) Данкинг - 2.4.2009, 17:20


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
uranpro
Дата 2.4.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



Данкинг, это понятно... но у мемо тоже есть tstrings, когда я туда загружаю файл, то он выдает не верное значение.. может есть функция системная ?))


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
kami
Дата 2.4.2009, 17:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(uranpro @  2.4.2009,  17:25 Найти цитируемый пост)
то он выдает не верное значение

На основании чего был сделан такой вывод?
PM MAIL WWW   Вверх
AntonN
Дата 2.4.2009, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 3
Всего: 18



в цикле читать из файла текст блоками, искать переносы строк, инкрементировать счетчик, ничего ни в какой TStrings не грузить


--------------------
user posted image
PM MAIL WWW   Вверх
uranpro
Дата 2.4.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

Репутация: нет
Всего: 1



кол-во строк мне нужно для prograssbar`a
code:
Код

procedure TLogToDBForm.Button1Click(Sender: TObject);
var
  SL:TStringList;
  Qry:TQuery;
  FI:TextFile;
  Buff:String; i, t:integer;
begin
  t:=GetTickCount;
  Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'Log.txt');
  PB.Position:=0;
  PB.Max:=Memo1.Lines.Count-1;
  Memo1.Clear;
  AssignFile(FI,'Log.txt'); Reset(FI);
  if FileExists('Log.db') then DeleteFile('Log.db');
  try
    Qry:=TQuery.Create(nil);
    Qry.SQL.Text:='create table Log (FullName varchar(255), '+
    'FPath varchar(255), FName varchar(50), FType varchar(8), FSize float)';
    Qry.ExecSQL;
    while not Eof(FI) do begin
      try
        SL:=TStringList.Create;
        Readln(FI,Buff);

        lInfo.Caption:=inttostr(PB.Position+1)+', '+inttostr(length(Buff));
        if strtoint(lLength.Caption)<length(Buff) then
          lLength.Caption:=inttostr(length(Buff));

        ExtractStrings([eSeparator.Text[1]], [' '], PChar(Buff), SL);
        if SL.Count=5 then begin
          with Qry.SQL do begin
            Clear;
            Add('insert into Log values (');          
            Add(''''+SL.Strings[0]+''',');
            Add(''''+SL.Strings[1]+''',');
            Add(''''+SL.Strings[2]+''',');
            Add(''''+SL.Strings[3]+''',');
            Add(SL.Strings[4]+')');
            end;
          try
            Qry.ExecSQL;
          except
            on E:Exception do begin
              mErrors.Lines.Add('++++++++++++++++++++++++++++++++++++++++++++++');
              mErrors.Lines.Add('SQL Error:');
              mErrors.Lines.Add(E.Message);
              mErrors.Lines.Add('SQL:');
              mErrors.Lines.Add(Qry.SQL.Text);
              lErorrs.Caption:=inttostr(strtoint(lErorrs.Caption)+1);
              end;
            end;
          end
        else begin
          with mErrors.Lines do begin
            Add('----------------------------------------------');
            Add('SL.Count='+inttostr(SL.Count)+' Line='+inttostr(PB.Position+1));
            for i:=0 to SL.Count-1 do
              Add('SL.Strings['+inttostr(i)+']: '+SL.Strings[i]);
            lErorrs.Caption:=inttostr(strtoint(lErorrs.Caption)+1);
            end;
          end;
        PB.Position:=PB.Position+1;
      finally
        SL.Free;
        end;
      Memo1.Lines.Add('----------------------------------------------');
      Memo1.Lines.Add(Buff);
      lTime.Caption:=inttostr(GetTickCount-t);
      Application.ProcessMessages;
      end;
  finally
    Qry.Free;
    end;
end;


зы: создаю stringlist в цикле из-за того, что не работает SL.Clear... странно оО =( Знаю, что будет быстрее работать, если создать параметры.

Это сообщение отредактировал(а) uranpro - 2.4.2009, 18:40


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.