|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Конвертация TStrings в String
Помогите. Вообщем, когда "конвертирую" через цикл просто переменные, то все получается. А когда пытаюсь конвертировать линии Memo, мне выдает "Abstract Error".
Код:
for i:= 0 to MessageEdit.Lines.Count - 1 do Msg:= Msg + #13 + MessageEdit.Lines.GetText; Не понятно, что не так делаю? Объясните. P.S. Ошибка может быть ооооочень глупая, просто я сейчас сонный Auta i Lome... |
#2
|
|||
|
|||
Надо вообще-то Memo1.Lines[i]
Но даже это не надо, т.к. можно просто так: Код:
Msg := Memo1.Lines.Text; Без всяких циклов и других извращений. |
#3
|
|||
|
|||
Чего-то я вообще смысла этого всего не поняла. У вас получится строка, в которой содержимое MessageEdit'а будет повторяться столько раз, сколько строк в Memo. К чему это дублирование?
В целом, код рабочий, насколько я могу судить. Вот только я переписала бы это так: Код:
procedure TraLaLa; var i: Integer; Msg : string; begin Msg := ''; for i := 0 to MessageEdit.Lines.Count - 1 do Msg := Msg + #13#10 + StrPas(MessageEdit.Lines.GetText); end; |
#4
|
||||
|
||||
Немного поясню то, что говорил lmikle. Вот только он говорил про TMemo, а я поясню для TStrings (хотя разница небольшая, т.к. TMemo использует TStrings).
Если нужно получить весть текст, то используйте Strings.Text. Если только одну строку, то Strings.Strings[i], где i - номер строки (не забываем, что первая строка идет под номером 0). Пример с циклом, где к переменной Msg плюсуются строки из Strings: Код:
procedure TForm1.Button1Click(Sender: TObject); var Strings: TStrings; i: Integer; Msg: string; begin Strings:= TStringList.Create; try // указываем текст в Strings, например Strings.LoadFromFile('ss.txt'); // а далее идет код: for i:= 0 to Strings.Count - 1 do Msg:= Msg + #13#10 + Strings.Strings[i]; finally Strings.Free; end; end; Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#5
|
|||
|
|||
lmikle, спасибо я и не знал что можно так делать!
Karsh, вот я так обычно и делаю, но оказывается можно так, как вы мне предложили (в одну строчку). P.S. Извените, я вместо GetText хотел написать MessageEdit.Lines[i]. Говорю же сонный был Добавил: Разобрался в чем дело. Просто я еще в этой процедуре вызываю TICQClient1.SendMessage(); где тоже есть такая переменная Msg Auta i Lome... Последний раз редактировалось BloodFooria, 01.04.2009 в 06:19. |
#6
|
||||
|
||||
TICQClient
У тебя есть рабочий TICQClient ??? Если да, то кинь плиз ссылку на него в личку
|
#7
|
||||
|
||||
Цитата:
Он всегда рабочий, просто если потрудишься почитать немного про изменения в протоколе, то и сам подправишь. На torry.net можешь и готовый взять. Нет повести печальнее на свете, чем повесть о заклиневшем Resete. |