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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2012, 20:24   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию загрузить в метку текст из файла

здравствуйте, есть файл с текстовой информацией, в нем есть некоторые вопросы разделенные точкой. Нужно по нажатию кнопки вывести вопрос в метке, по повторном нажатии загрузить следующий вопрос и т.д до конца файла

З.Ы. не знаю как делать, решил загрузить это все в МЕМО, но выдается ошибка, хотя с едитами все работает


Код:
var
m:Integer=0;
n:Integer=0;
p:Integer=0; //глобальные переменные

procedure TForm1.btn2Click(Sender: TObject);
var
vopr:string[255];
begin
mmo1.Lines.LoadFromFile('вопросы.txt');
p:=Pos('.',mmo1.Lines);
n:=n+p;
p:=m+p;
vopr:=Copy(mmo1.Lines,n,m-p);
lbl6.caption:=vopr;
mmo1.Clear;
end;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 11.11.2012, 21:47   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

mmo1.Lines.Text
ReportCube вне форума Ответить с цитированием
Старый 11.11.2012, 22:51   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

а как-нибудь можно не используя компонент мемо? Мне не только вопросы нужно в метку загрузить, мне нужно варианты ответы в радиогруппу из второго файла загрузить, но этого тут не прошу, остальное по примеру дальше думаю сам смогу сделать
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 11.11.2012, 23:42   #4
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Создайте TStringList и грузите в него, принцип работы тот же, только без визуализации списка. В чём проблемы?
ReportCube вне форума Ответить с цитированием
Старый 12.11.2012, 01:02   #5
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

А на какой вкладке этот компонент? никак найти не могу
from dark to light)

Последний раз редактировалось Алексей_2012; 12.11.2012 в 01:06.
Алексей_2012 вне форума Ответить с цитированием
Старый 12.11.2012, 19:16   #6
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

TStringList - это не компонент, а класс, он наследник TStrings. TMemo внутри себя также содержит TStrings.
ReportCube вне форума Ответить с цитированием
Старый 12.11.2012, 20:16   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Алексей,
прямо в коде пишите создание объекта класса TStringList

вот так, например:
Код:
procedure TForm1.btn2Click(Sender: TObject);
var
  TS : TStringList;
begin
  lbl6.caption := '';
  try 
    TS := TStringList.Create;
    TS.LoadFromFile('вопросы.txt');
    p:=Pos('.',TS.Text);
    if p>0 then begin
      n:=n+p;
      p:=m+p;
      lbl6.caption := Copy(TS.Text,n,m-p);
  finally
     FreeAndNil(TS); {освободили занятую память}
  end;
end;

пример кода условный. Подправите под себя..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.11.2012, 21:09   #8
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

спасибо Вам, а помогите пожалуйста, исправьте черновую версию программы, в метке должна выводится строка до ограничителя, а выводится неизвестно как, код проверял не раз, исправьте

Код:
var
l:integer=0;
p:integer=0;
h:integer=1;


procedure TForm1.btn2Click(Sender: TObject);
var
  vopr:string;
begin
  lbl6.caption:='';
mmo1.Lines.LoadFromFile(ExtractFilePath(ParamStr(0))+'вопросы.txt');
p:=Pos(';',mmo1.Lines.text);
l:=l+p;
vopr:=copy(mmo1.Lines.text,h+1,l);
lbl6.caption:=vopr;
h:=h+p;
mmo1.Clear;
mmo1.Lines.add('Отображение результата ЗДЕСЬ!!');
end;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 12.11.2012, 21:52   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, Вы абсолютно зря не воспользовались советом по использованию TStringList!

во-вторых, зачем Вам глобальные l, p, h ?!

в-третьих, (и самое главное), что значит "до ограничителя"?!
Вы, может быть, конкретизируете, что у Вас есть в текстовом файле с вопросами и, главное, что Вы хотите добится в результате выполнения вашего кода?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2012, 10:33   #10
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

я использую стринг лист, но мне надо до ума код сначала этот довести

эти переменные, по крайней мере 2 пригодятся

файл с вопросами содержит вопросы, резделенные ограничителем, точкой с запятой, тест по английскому, но приведу другой пример вопросов, которые в файле:

Например: Сколько зубов у человека?;
Сколько вам лет?;

точка с запятой-ограничитель, поэтому в метке должен выводиться первый вопрос, до точки с запятой, затем по повторном нажатии на кнопку второй, и т.д))) ну как-то так,, надеюсь теперь вы мне сможете помочь)))
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как загрузить текст в листбокс cargo29 Общие вопросы Delphi 6 25.04.2011 19:26
Загрузить изображение и текст larin1974 Помощь студентам 2 21.12.2009 17:17
Загрузить текст в listview AquaKlaster Общие вопросы Delphi 4 28.06.2009 00:31
Загрузить текст(30стр.) в RichEdit Delaila Помощь студентам 2 19.11.2008 23:07
Загрузить текст из файла в мемо Teen4jump Общие вопросы Delphi 2 17.08.2007 21:05