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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2009, 17:05   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
lexab18
Дык может переменка твоя пустая...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2009, 17:32   #12
lexab18
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 14
По умолчанию

что-то я не совсем понимаю..
lexab18 вне форума Ответить с цитированием
Старый 24.06.2009, 18:54   #13
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Тогда выкладывайте весь проект вместе с файлом, из которого читаем.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 24.06.2009, 19:14   #14
lexab18
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 14
По умолчанию

вот
проект!!!!.rar
lexab18 вне форума Ответить с цитированием
Старый 24.06.2009, 19:59   #15
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Правильно сказал Stilet, переменная s - пустая. А в условии есть обращение к её последнему символу. При нажатии кнопки в edit1, вызывается OnKeyDown. Буква ещё не появилась, edit1 всё ещё пустой, а код уже выполняется. Это объяснение причины этой ошибки. А так как проект сделан не очень хорошо, то ошибок будет ещё больше.
Для начала - зачем читать файл каждый раз при нажатии любой кнопки в Edit1? Наверное задумка была делать это при нажатии enter? Тогда нужно добавить проверку (а что за кнопку-то нажали?):
Код:
if key <> 13 then
 exit;
Далее. Подумайте над другим способом реализации всего приложения. 5 форм выглядят одинаково и делают одно и то же. Могу подсказать вариант, но лучше сначала подумайте самостоятельно.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс

Последний раз редактировалось Олвин; 24.06.2009 в 20:08.
Олвин вне форума Ответить с цитированием
Старый 24.06.2009, 20:44   #16
lexab18
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 14
По умолчанию

ну как бы в условии задания мне нужно было заносить в базу города которые отсутствуют в файле , я решил сделать это что при нажатии на enter города будут заноситься в базу.
теперь выскакивает ошибка I/O 32, ссылаясь на это
Код:
if Fileexists('Города.txt') then  append(f) else rewrite(f);
lexab18 вне форума Ответить с цитированием
Старый 25.06.2009, 17:19   #17
lexab18
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 14
По умолчанию

Проблема решилась.
Нашел нужный код и переделал под себя)
Осталось ток исключения написать.
lexab18 вне форума Ответить с цитированием
Старый 25.06.2009, 20:38   #18
lexab18
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 14
По умолчанию

Столкнулся с другой проблемой.
В общем нужно написать исключения, например пользователь вводит слово Ярославль, слов начинающихся на ь вобще не существует.
Написал так
Код:
  if ((s1='ь') or (s1='ы') or (s1='ъ') or (s1='й'))
  then begin l:=length(s2)-1;
  if s2[l]=s[1] then
  label2.caption:=S;
  if S1=S[1] then begin
  label2.caption:=S;
Никак не могу понять в чом ошибка, вроде по логике все правильно хотя почему то когда ввожу слово мне выводит последнюю строку из файла.
Дальше никак не могу понять как сделать чтоб не было повторов в игре, ну т.е слова которые я ввел и вывел комп больше в игре не использовались.
Кто может помочь?
lexab18 вне форума Ответить с цитированием
Старый 26.06.2009, 11:54   #19
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

1). Проект изменился, добавились новые переменные. Прошу расшифровки! Что такое s1, s2, s? Если тип s1 - char, то можно проще условие записать:
Код:
if s1 in ['ь', 'ы', 'ъ', 'й']...
2). Есть два условия с одинаковыми строками (label2.caption:=S). Нельзя их объединить, использовав OR?
3). Повторы в игре. Можно использовать объект TStringList (он хранит строки).
Код:
var
povtors : TStringList;
begin
povtors := TStringList.Create;
//Создали объект, теперь в него можно добавлять города, встретившиеся в игре:
povtors.Add(s); // Здесь s - это город
// И в любой момент можно проверить наличие города в списке:
if povtors.IndexOf(s) <> 0 // TRUE, если город в списке есть
// В конце работы программы объект необходимо уничтожить:
povtors.Free;
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 26.06.2009, 14:58   #20
lexab18
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 14
По умолчанию

s1- это последний символ в веденном слове.Тип s1 так и есть char.
S-это то слово которое должен вывести комп.S2 это введенное мной слово, хотя я думаю эта переменная не нужна.
С повторами уже сам разобрался.
P.S возникла новая проблема.Когда ввожу 1-ый раз слово,мне компьютер нормально отвечает, когда второй раз, вылетает ошибка I/O 32
Вот проект
Вложения
Тип файла: rar проект!!!!.rar (476.2 Кб, 10 просмотров)

Последний раз редактировалось lexab18; 26.06.2009 в 15:24. Причина: пр
lexab18 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка - [Error] GraphUnit.pas(104): Types of actual and formal var parameters must be identical Ash Общие вопросы Delphi 8 30.10.2012 21:01
Ошибка Delphi Степа Верхозин Помощь студентам 2 31.05.2009 11:45
Ошибка I/O error 104 ptz2010 Общие вопросы Delphi 8 31.03.2009 20:45
Прошу помочь, на жестком диске вникуда ушли (!!!)104(!!!)Гб BloodDoc Компьютерное железо 18 05.06.2008 22:27
ошибка в Delphi 6 Ms-dos4 Софт 7 26.08.2007 14:09