Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Передача строки в TStringList/ [D6, Win2k]


bloodman ©   (2004-11-16 20:16:00) 

Возможно ли строчку вида    "dsadsad #13#10 jfdjds #13#10 fddsf" передать в TStringList таким образом чтобы она разбилась в нем на подстроки до знака конца строки(#13#10),Без предварительного преобразования ?  Пробовал написать так:

text : TStringList;
str: string;

....
text.text:=str;

Но программа вылетает с Abstract Error  :(


bloodman   (2004-11-16 21:33:00) [1]

ничего уже не надо спасибо же уже сказал -)


novice_man   (2004-11-16 21:29:00) [2]

Какой настырный :))

var
 Form1: TForm1;
 str1: TStrings;
 txt: string;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
str1 := TStringList.Create; <<----
txt := 'dsadsad '#13#10' jfdjds '#13#10' fddsf';
str1.Text := txt;
Memo1.Text := str1.Text;
end;

Все объяснили, показали, что еще человеку надо?


bloodman   (2004-11-16 21:29:00) [3]

begin...end ©   (16.11.04 21:26) [16]
-) я не врал , честно , мне это не за чем -))


bloodman   (2004-11-16 21:28:00) [4]

Усе , виноват , наверно у меня там было все таки так :
procedure test;
var
text : TStrings;
str  : String;
begin
str:='dsadsad'+#13#10+'jfdjds'+#13#10+'fddsf';
Text:=TStrings.Create;
text.text:=str;
end;

Спасибо за помошь , я просто сам запутался....


begin...end   (2004-11-16 21:26:00) [5]


> [13] bloodman ©   (16.11.04 21:23)

> Именно так у меня было написано.

По моим подсчётам, у тебя нос уже стал длиной не менее 1 метра.


bloodman   (2004-11-16 21:25:00) [6]

begin...end ©   (16.11.04 21:22) [12]
я не обманываю, сверху когда печатал вопрос просто ошибся.


novice_man   (2004-11-16 21:25:00) [7]

Text:=TStringList.Create; !!!!!!!


bloodman   (2004-11-16 21:23:00) [8]

VMcL ©   (16.11.04 21:18) [10]
Конечно надо, я этим и занимаюсь.

Как я понял  Вот это ДОЛЖНО выдавать ошибку да?
procedure test;
var
 text : TStrings;
 str  : String;
begin
str:='dsadsad'+#13#10+'jfdjds'+#13#10+'fddsf';
Text:=TStringList.Create;
text.text:=str;
end;
??  
Именно так у меня было написано.


begin...end   (2004-11-16 21:22:00) [9]


> [8] bloodman ©   (16.11.04 21:14)

Ты нас опять обманываешь, тебе ещё не надоело? Код из [2] с заменой var str1: TStringListна var str1: TStringsпрекрасно работает.


Юрий Зотов   (2004-11-16 21:21:00) [10]

> bloodman ©   (16.11.04 21:14) [8]
> Но ведь тогда не все правильно работает при таком полиформизме...

Как Вы считаете, есть ли разница между этими двумя строками:
TempList := TStringList.Create; // НЕабстрактный объект
TempList := TStrings.Create; // Абстрактный объект


Так что с полиформизмом все в порядке. И работает все правильно.
:о)


VMcL   (2004-11-16 21:18:00) [11]

>> bloodman ©  (16.11.04 21:14) [8]

Ключевая строка - вот эта:
TempList := TStringList.Create; { construct the list object }

> Но ведь тогда не все правильно работает при таком полиформизме...

Вам было бы полезно подучить матчасть.


novice_man   (2004-11-16 21:17:00) [12]

А в чем неправильность заключена?


bloodman   (2004-11-16 21:14:00) [13]

Но ведь тогда не все правильно работает при таком полиформизме...


begin...end   (2004-11-16 21:13:00) [14]


> [6] bloodman ©   (16.11.04 21:09)


> В чем смысл тогда этого примера?

В полиморфизме.


bloodman   (2004-11-16 21:09:00) [15]

-) не в кусты а кушать -) У меня действительно TStrings было ...
Чето я вообще запутался , ведь в хелпе так написано:
procedure TForm1.Button1Click(Sender: TObject);

var
 TempList: TStrings; { declare the list }
begin
 TempList := TStringList.Create; { construct the list object }
 try
   { use the string list }
 finally
   TempList.Free; { destroy the list object }
 end;
end;
????
В чем смысл тогда этого примера?


novice_man   (2004-11-16 20:34:00) [16]

Вот так всегда! Напакостят и в кусты.


novice_man   (2004-11-16 20:32:00) [17]

А вот " Abstract Error" вылетит в этом случае:

var
 Form1: TForm1;
  str1: TStrings;
 txt: string;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
str1 := TStrings.Create;-  Abstract Error!!!!
txt := 'dsadsad '#13#10' jfdjds '#13#10' fddsf';
str1.Text := txt;
Memo1.Text := str1.Text;


begin...end   (2004-11-16 20:30:00) [18]


> bloodman ©   (16.11.04 20:16)

Ты нас, наверное, обманул, или перепутал TStringList с TStrings.


novice_man   (2004-11-16 20:27:00) [19]

Да и так все работает нормально.

var
 Form1: TForm1;
 str1: TStringList;
 txt: string;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
str1 := TStringList.Create;
txt := 'dsadsad '#13#10' jfdjds '#13#10' fddsf';
str1.Text := txt;
Memo1.Text := str1.Text <<-- проверял что получилось

результат:

dsadsad
jfdjds
fddsf


novice_man   (2004-11-16 20:24:00) [20]

var
 Form1: TForm1;
 str1: TStringList;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
str1 := TStringList.Create; <<-- ЭТО ДЕЛАЛ??
str1.Text := 'dsadsad #13#10 jfdjds #13#10 fddsf';
Memo1.Text := str1.Text;
end;

У меня все работает так!


Наверх

Титульная страница Поиск, карта сайта Написать письмо