Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизПередача строки в 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.038 c