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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TStringList, длина каждой из строк 
V
    Опции темы
sgentstuff
Дата 29.6.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

var
str: TStringList;
str:= TStringList.Create;
  str.LoadFromFile('D:\excel\0601_ARK.TO1');
  for k := 0 to str.Count-1 do
    begin
        memo1.Lines.Add(str.Strings[k]);
     end;


str.Count - это будет количство строк в файле, а как узнать длину каждой строки файла? 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Dynamic
Дата 29.6.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 12
Всего: 15



Код

for k := 0 to str.Count-1 do
    begin
        Len := Length(st[k]);                        < ---------- длина текущей строки
     .......................
     end;
 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
sgentstuff
Дата 29.6.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а как добраться до каждого символа каждой строки? 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Rrader
Дата 29.6.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Код

Var
  S: String;
  I: Integer;
...
Begin
  S := 'Stuff';
  I := Length(S);
  S[I] := 'S'; // I - индекс, начинающийся с 1
End;
 


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Guedda
Дата 29.6.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

Репутация: 14
Всего: 78



Код

const
  i = 3; //Допустим, тебе нужен 3 символ;
var
  s : string;
begin
  S := str.Strings[k];
  ShowMessage(S[i]); // Покажет тебе третий символ.
end;

 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
sgentstuff
Дата 29.6.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Guedda @ 29.6.2006,  13:50)
Код

const
  i = 3; //Допустим, тебе нужен 3 символ;
var
  s : string;
begin
  S := str.Strings[k];
  ShowMessage(S[i]); // Покажет тебе третий символ.
end;


он покажет 3 строку, а мне нужен третий символ жтой строки 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Guedda
Дата 29.6.2006, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

Репутация: 14
Всего: 78



Опять... Только с комментариями...
Код

const 
  i = 3; //Нам нужен, допустим, 3 символ
var
str: TStringList;
s : string; // Это строка, которую мы вытащим из TStringList
begin
str:= TStringList.Create;
  str.LoadFromFile('D:\excel\0601_ARK.TO1');
  for k := 0 to str.Count-1 do
    begin
        s := str.Strings[k]; //Кидаем в переменную S требующуюся нам строку
        ShowMessage(s[i]); //Выведет сообщение с третьим! символом строки, которую мы взяли!
     end;
end;
  

Это сообщение отредактировал(а) Guedda - 29.6.2006, 14:01


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
sgentstuff
Дата 29.6.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Rrader @ 29.6.2006,  13:49)
Код

Var
  S: String;
  I: Integer;
...
Begin
  S := 'Stuff';
  I := Length(S);
  S[I] := 'S'; // I - индекс, начинающийся с 1
End;

значит строки начинаются с 1.
 
а эта штука тоже с 1 или с 0?
for k := 0 to str.Count-1 do    
    begin    
        memo1.Lines.Add(str.Strings[k]);    
     end;
 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Palladin
Дата 29.6.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



А что тебе нужно??? если допустим все 'а' нужно заменить на 'b' то просто перебором

for i:=1 to length(s) do   //s это твоя строка, та которую ты вытащил из файла
if s[i]='a' then s[i]:='b';

Что-то типа этого smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
sgentstuff
Дата 29.6.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Guedda @ 29.6.2006,  14:00)
Опять... Только с комментариями...
Код

const 
  i = 3; //Нам нужен, допустим, 3 символ
var
str: TStringList;
s : string; // Это строка, которую мы вытащим из TStringList
begin
str:= TStringList.Create;
  str.LoadFromFile('D:\excel\0601_ARK.TO1');
  for k := 0 to str.Count-1 do
    begin
        s := str.Strings[k]; //Кидаем в переменную S требующуюся нам строку
        ShowMessage(s[i]); //Выведет сообщение с третьим! символом строки, которую мы взяли!
     end;
end;

да проверил работает спасибо 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Guedda
Дата 29.6.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

Репутация: 14
Всего: 78



Цитата(sgentstuff @  29.6.2006,  15:01 Найти цитируемый пост)
значит строки начинаются с 1.
 
а эта штука тоже с 1 или с 0?

Скажи подробнее, что тебе нужно? Просто ход твоих мыслей непонятен. Сформулируй правильно вопрос, который ты хочешь задать, и задай... Тебе помогут тогда...
А так ты вилами по воде пишешь... 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
sgentstuff
Дата 29.6.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Guedda @ 29.6.2006,  14:04)
Цитата(sgentstuff @  29.6.2006,  15:01 Найти цитируемый пост)
значит строки начинаются с 1.
 
а эта штука тоже с 1 или с 0?

Скажи подробнее, что тебе нужно? Просто ход твоих мыслей непонятен. Сформулируй правильно вопрос, который ты хочешь задать, и задай... Тебе помогут тогда...
А так ты вилами по воде пишешь...

мне надо из файла получить все строки, далее пройтись по каждой полуыченной строке и получить массив слов этой строки вот 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Dynamic
Дата 29.6.2006, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 12
Всего: 15



А как насчет того, чтобы хоть одну книжку по Дельфи почитать? 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
sgentstuff
Дата 29.6.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Dynamic @ 29.6.2006,  14:28)
А как насчет того, чтобы хоть одну книжку по Дельфи почитать?

книги читаю, но долго что-то искать на форуме можно быстрее узнать 
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда.  
PM ICQ   Вверх
Guedda
Дата 29.6.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

Репутация: 14
Всего: 78



Цитата(sgentstuff @  29.6.2006,  15:14 Найти цитируемый пост)
мне надо из файла получить все строки, далее пройтись по каждой полуыченной строке и получить массив слов этой строки

Тогда прийдется немного изменить процедуру:
Код

var
  str: TStringList;
  s : string; // Это строка, которую мы вытащим из TStringList
  Str2 : TStringList; //Здесь будет храниться массив слов из всех строк
  k, j : Integer;
begin
  str:= TStringList.Create;
  Str2 := TStringList.Create;
  Str2.BeginUpdate;
  str.LoadFromFile('D:\excel\0601_ARK.TO1');
  for k := 0 to str.Count-1 do   begin
    s := str.Strings[k]; //Кидаем в переменную S требующуюся нам строку
    for j := 1 to length(s) do begin
      if s[j] <> ' ' then //Если буква не пробел, то это начало/продолжение слова
        NewS := NewS + s[j]
      else begin //иначе, если слово закончилось, и там пробел, то
        Str2.Add(NewS); //Добавляем в наш массив слово
        NewS := ''; //Обнуляем строку
      end;
    end;
  end;
  Str2.EndUpdate;
end;

В этом примере все слова файла (которые идут через пробел) будут находиться в Str2 (тип TStringList)  

Это сообщение отредактировал(а) Guedda - 29.6.2006, 14:36


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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