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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TStringList и string 
V
    Опции темы
Mr.Floppy
Дата 24.7.2006, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть строка (string) примерно следующего содержания: 'Строка 1'+#13#10+'Строка 2'+#13#10+'Строка 3'...
Каким образом эту строку лучше перегнать в TStringList?
Если ли какая-нибудь функция, реализующая это, или надо городить с циклами, Pos'ами и т.п.?
Add(string) добавляет одной строкой, а мне надо обращаться к ним, как к массиву. 
PM MAIL   Вверх
Bose
Дата 24.7.2006, 02:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

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



У TstringList есть свойство, что-то типа Delimiter которое отвечает за то,  какой символ используется в качестве разделителя. 

Можно сделать так: 
Заменить в строке все #13#10 на какой-нибудь малоиспользуемый текст(можно вообще выбрать "непечатный" символ типа chr(1)).
Сделать этот симол разделителем в TstringList.Delimiter:=chr(1)
А дальше сделать так: TstringList.DelimitedText:=строка с заменёнными символами.

к сожалению точных названий ф-ций сейчас не вспомню. Но когда-то я вполне успешно использовал подобный подход. 
PM MAIL WWW Skype   Вверх
Mr.Floppy
Дата 24.7.2006, 03:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, работает 
PM MAIL   Вверх
bazzzman
  Дата 24.7.2006, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: 0
Всего: 2



Не понимаю, чем не нравится свойство CommaText?

Код

procedure TForm1.Button1Click(Sender: TObject);
var s: String; sl: TStringList;
begin
s := '1'#13#10 + '2'#13#10;

sl := TStringList.Create;
sl.CommaText := s;

ShowMessage(IntToStr(sl.Count));

sl.Free;
end;


Отлично работает + легче чем с Delimiter.  

Это сообщение отредактировал(а) bazzzman - 24.7.2006, 07:33
PM MAIL WWW   Вверх
Romikgy
Дата 24.7.2006, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(bazzzman @  24.7.2006,  06:28 Найти цитируемый пост)
sl.CommaText := s;

можно проще 
Код

sl.Text := s;
 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

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

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

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

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

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


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

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


 




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


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

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