Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.12.2011, 12:36
gvozdkoff gvozdkoff вне форума
Прохожий
 
Регистрация: 10.10.2006
Сообщения: 9
Репутация: 10
По умолчанию длина строк в TStringList

Здравствуйте, уважаемые.
Задача такая:
есть текстовый файл такого вот содержания
Код:
#43faec76$GPRMC,181300.000,A,5508.9052,N,06122.6377,E,0.00,231.09,221111,,,A*68
##
#43faec76$GPRMC,181330.000,A,5508.9052,N,06122.6377,E,0.00,231.09,221111,,,A*6B
Кол-во строк может быть равно 1000
Задача:
1. посчитать количество символов в строках (построчно)
2. удалить строки , кол-во символов в которых < 3 (меньше 3).

вот что я делаю
Код:
Var
 StrList: TStringList;
 TempStr: String;
  L,i: Integer;
begin
StrList:= TStringList.Create;
try
StrList.LoadFromFile('2.txt');
TempStr:=StrList.CommaText; //либо TempStr:=StrList.Text;
L:=Length(TempStr);  // здесь мне подсчитывает все символы в файле
Label2.Caption:= inttostr(StrList.Count);
Label1.Caption:= inttostr(L);
finally
StrList.Free;


если же делаю так
Код:
L:=Length(TempStr[1]);
// думаю что приписываю 1-ую строку и получу кол-во символов в ней

то результат у меня равен 1, причем всегда називисимо от значения
Код:
TempStr[1]
Ну и сам вопрос, как же посчитать кол-во символов в каждой строке?
Большое спасибо за потраченное время.
Ответить с цитированием
  #2  
Старый 05.12.2011, 14:06
Polus39 Polus39 вне форума
Прохожий
 
Регистрация: 06.09.2011
Сообщения: 3
Репутация: 12
По умолчанию

Я не проверял, ро должно работать

Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
 StrList: TStringList;
 TempStr: String;
  L,i: Integer;
begin
  StrList:= TStringList.Create;
  try
    StrList.LoadFromFile('2.txt');
    Label2.Caption  := inttostr(StrList.Count);
    for i := 0 to StrList.Count - 1 do begin
      TempStr :=  StrList.Strings[i];
      L := Length(TempStr);
      Label1.Caption  := inttostr(L);
    end;
  finally
    StrList.Free;
  end;
end;
Ответить с цитированием
  #3  
Старый 05.12.2011, 14:53
gvozdkoff gvozdkoff вне форума
Прохожий
 
Регистрация: 10.10.2006
Сообщения: 9
Репутация: 10
По умолчанию

спасибо большое, все отлично , код рабочий
Ответить с цитированием
  #4  
Старый 05.12.2011, 21:21
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Переменная TempStr лишняя.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:52.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025