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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2012, 14:59   #1
Чач
Новичок
Джуниор
 
Аватар для Чач
 
Регистрация: 03.05.2012
Сообщений: 2
По умолчанию Delphi. Случаная фраза из файла

Есть в инете старая прога "Fraza"
fraza.rar

Я хочу сделать такую же, со своими фразами.
Два дня я её пытаюсь сделать и уже началася баттхерт.

Вот что я делаю:
Создаю на стандартной форме, основном окне - форму текста (Label)
И задаю к основному окну действие OnCreate, а к этому действию вот это:

Цитата:
var
Form1: TForm1;
t:TStringList;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin
t:=TStringList.create;
t.loadfromfile('file.txt');
lbl1.clear;
randomize;
lbl1.lines.add(t.strings[random(t.lines.count-1)]);
t.free;
end;
и в итоге возникает ошибка.

"вот это" я подчерпнул из этой темы:
http://www.programmersforum.ru/showt...ight=Randomize

Прошу вашей помощи и совета.
Чач вне форума Ответить с цитированием
Старый 03.05.2012, 15:15   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, какая ошибка возникает? Может файла 'file.txt' рядом с exe-шником банально нет?!

во-вторых, какого типа lbl1 ? TMemo ?

в-третьих, нужно выкинуть -1
Код:
  lbl1.lines.append( t.strings[random(t.count)]);
- иначе последняя строчка из файла НИКОГДА в мемо не попадаёт!

в-четвёртых,
Цитата:
"вот это" я подчерпнул из этой темы:
плохая тема. автор кода явный новичок, код с грубейшими огрехами...

Последний раз редактировалось Serge_Bliznykov; 03.05.2012 в 15:17.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.05.2012, 16:28   #3
Чач
Новичок
Джуниор
 
Аватар для Чач
 
Регистрация: 03.05.2012
Сообщений: 2
По умолчанию

Спасибо.

Ошибка возникала здесь:
Цитата:
lbl1.clear;
или если я удалял эту строчку, то здесь:
Цитата:
lbl1.lines.add(t.strings[random(t.lines.count-1)]);
Потом я заменил "Label" на "Memo", и использовал твою строчку кода.
Тогда ошибка пропала.

В итоге сейчас, у меня вроде как бы и есть то, что надо. Но мне не нравиться - топорно и грубо.

Я орентировался на это:
Citata2.jpg

А вышло вот, что:
Citata1.jpg

И сама прога:
Citata.rar
Чач вне форума Ответить с цитированием
Старый 04.05.2012, 13:45   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

дык выкиньте напрочь своё мемо! (и, кстати можно вместе с формой )

код, где вы заносите в мемо строку замените на
Код:
procedure TForm1.FormCreate(Sender: TObject);
var s : string;
begin
  randomize;
  t:=TStringList.create;
  t.loadfromfile('file.txt');
  s := t.strings[random(t.lines.count)]
  t.free;

  ShowMessage( s );

end;
как вариант можете попробовать с Application.MessageBox поиграться.
например:
Код:
....
  MessageBox(0, PChar( s ), 'The Great phrase!', MB_OK or MB_TOPMOST);

end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана фраза определить сколько в ней предложений. BBorr1 Помощь студентам 4 01.02.2012 22:32
Дана фраза, слова разделены пробелом. Определить, сколько в ней наречий и однобуквенных местоимений. (Turbo Pascal) brahmanchik Помощь студентам 5 22.01.2012 01:32
К каждой строчке добавляется фраза Dominatorsha Общие вопросы Delphi 1 30.05.2011 16:21
Delphi 7 преобразование файла Rmps Помощь студентам 4 08.04.2011 15:26