Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2009, 13:44   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Присваивание тексту Memo значения из TStringList

В общем тренируюсь с TStringList:
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
 Y: Integer;
begin
 S:=TStringList.Create;
 For Y:=0 to 8399 do
  S.Add('Line number '+IntToStr(Y));
 S.SaveToFile('StringsText.text');
 S.Free;
 Windows.Beep(700,700);
end;

procedure TForm1.Button2Click(Sender: TObject);
Var
 Y:Integer;
begin
 S.LoadFromFile('StringsText.text');
 Windows.Beep(600,600);
 For Y:=0 to 8399 do
  Memo1.Lines.Add(S.Strings[Y]);
 S.Free;
 Windows.Beep(700,700);
end;
Ошибка Access Violation

Пробовал
Код:
Memo1.Text:=S.Text;
Тот же эффект. Как В Memo присвоить текст из TStringsList?


P.S. Var S:TStringList;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 14.08.2009, 13:52   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
В общем тренируюсь с TStringList:
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
 Y: Integer;
begin
 S:=TStringList.Create;
 For Y:=0 to 8399 do
  S.Add('Line number '+IntToStr(Y));
 S.SaveToFile('StringsText.text');
 S.Free;
 Windows.Beep(700,700);
end;

procedure TForm1.Button2Click(Sender: TObject);
Var
 Y:Integer;
begin
 S.LoadFromFile('StringsText.text');
 Windows.Beep(600,600);
  For Y:=0 to 8399 do
  Memo1.Lines.Add(S.Strings[Y]);
 S.Free;
 Windows.Beep(700,700);
end;
Убейте

И можно будет
Код:
Memo1.Text := S.Text;
psycho-coder вне форума Ответить с цитированием
Старый 14.08.2009, 13:52   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А Вы не пробовали сравнить оба метода? В первом есть строка S:=TStringList.Create; и есть строка S.Free;

Второй метод начинается с S.LoadFromFile('StringsText.text'); и s даже в секции var не объявлено . Мне кажется эта строка уже должна вызывать сообщение об ошибке .

ЗЫ. Психокодер опередил...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.08.2009, 13:54   #4
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

лично у меня так работает:
Код:
for i:=1 to s.Count-1 do
begin
   memo1.Lines.Add(s.Strings[i]);
end;
З.Ы. блин... долго же я писал)))
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 14.08.2009, 13:55   #5
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

2Wicort
Можно проще
Цитата:
Код:
Memo1.Text := S.Text;
psycho-coder вне форума Ответить с цитированием
Старый 14.08.2009, 13:55   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Блин! Как всегда Create забыл! Это у меня уже хроническое.

P.S. S - глобалка.
P.S.S.Спасибо!
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 14.08.2009, 14:02   #7
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Блин! Как всегда Create забыл! Это у меня уже хроническое.

P.S. S - глобалка.
P.S.S.Спасибо!
Вам не обязательно создавать Create заново, просто удалите S.Free из Button1Click
И не забудьте S.Free при закрытии программы
psycho-coder вне форума Ответить с цитированием
Старый 14.08.2009, 18:16   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

еще проще
Memo1.Lines.LoadFromFile( );
Memo1.Lines.SaveTofile( );
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 14.08.2009, 19:20   #9
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Можно так:
Код:
Memo1.Lines.Assign(s);  //Где s - TStringList
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 14.08.2009, 20:51   #10
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Neeter, а в чем разница между
Код:
Memo1.Lines.Assign(s);
и
Код:
Memo1.Text:=S.Text
???
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод в memo.lines значения R:=random Алексей_xXx Помощь студентам 3 24.05.2009 11:26
Присваивание объектов Stalevar Общие вопросы Delphi 0 17.02.2009 19:06
Присваивание атрибута папке. papa_serg Общие вопросы Delphi 2 05.01.2009 16:45
Внести в БД значения из Memo Филлип БД в Delphi 2 23.11.2008 11:38
динамическое присваивание параметров The Doberman БД в Delphi 0 14.09.2007 07:58