Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: CL | DM;

Вниз

Передача строки в TStringList/   Найти похожие ветки 

 
bloodman ©   (2004-11-16 20:16) [0]

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

text : TStringList;
str: string;

....
text.text:=str;

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


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

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;

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


 
novice_man ©   (2004-11-16 20:27) [2]

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

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


 
begin...end ©   (2004-11-16 20:30) [3]


> bloodman ©   (16.11.04 20:16)

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


 
novice_man ©   (2004-11-16 20:32) [4]

А вот " 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;


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

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


 
bloodman ©   (2004-11-16 21:09) [6]

-) не в кусты а кушать -) У меня действительно 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;
????
В чем смысл тогда этого примера?


 
begin...end ©   (2004-11-16 21:13) [7]


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


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

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


 
bloodman ©   (2004-11-16 21:14) [8]

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


 
novice_man ©   (2004-11-16 21:17) [9]

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


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

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

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

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

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


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

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

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


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


 
begin...end ©   (2004-11-16 21:22) [12]


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

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


 
bloodman ©   (2004-11-16 21:23) [13]

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;
??  
Именно так у меня было написано.


 
novice_man ©   (2004-11-16 21:25) [14]

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


 
bloodman ©   (2004-11-16 21:25) [15]

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


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


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

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

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


 
bloodman ©   (2004-11-16 21:28) [17]

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

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


 
bloodman ©   (2004-11-16 21:29) [18]

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


 
novice_man ©   (2004-11-16 21:29) [19]

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

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:33) [20]

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



Страницы: 1 вся ветка

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.053 c
6-1095362612
dukenn
2004-09-16 23:23
2004.11.28
Как обратиться к данному url у?


14-1100106928
}|{yk
2004-11-10 20:15
2004.11.28
Народ! Предлагаю провести виртуальный матч по шахматам.


4-1098021793
Alex Friend
2004-10-17 18:03
2004.11.28
Использование русских символов


4-1097754774
Uran
2004-10-14 15:52
2004.11.28
как проверить запущенно ли другое приложение


3-1099389815
kgb
2004-11-02 13:03
2004.11.28
Как построить запрос