Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.06.2010, 23:28
Maximusrs Maximusrs вне форума
Прохожий
 
Регистрация: 25.06.2010
Сообщения: 8
Репутация: 10
Вопрос Срочно нужна помощь!

Подскажите пожалуйста в чем ошибка,вот описание проблемы:
Мне нужно создать в Делфи программу-тест которая считывает вопросы и ответы из типизированного файла, считываю вопросы загоняю их в Label и RadioButton первый вопрос и ответы вбиваются нормально,а при следующих присваиваниях часть техта "съедается" идет смещение на некоторое число позиций, Что делать?
Ответить с цитированием
  #2  
Старый 25.06.2010, 23:38
Maximusrs Maximusrs вне форума
Прохожий
 
Регистрация: 25.06.2010
Сообщения: 8
Репутация: 10
По умолчанию

Пожалуйста помогите завтра с утра уже сдавать надо!!!!(((((((
Ответить с цитированием
  #3  
Старый 26.06.2010, 00:02
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

код в студию.
А то ответ будет - ошибка в 255 строке...
Ответить с цитированием
  #4  
Старый 26.06.2010, 00:21
Maximusrs Maximusrs вне форума
Прохожий
 
Регистрация: 25.06.2010
Сообщения: 8
Репутация: 10
По умолчанию

Весь код скинуть не смогу уже удалил эту часть в тексте программы. Напишу часть образца:
Код:
type
student=record;
vopros:string[200];
otvet1:string[30];
otvet2:string[30];
otvet3:string[30];
otvet4:string[30];

otvet:integer;
end;
var
t:student;
i,k:integer;
f:file of student;
begin

AssignFile(f,'sport');
Reset(f);
Seek(f,i);
readln(f,t);
s:=t.vopros;
Label1.Caption:=s;
s:=t.otvet1;
RadioButton1.Caption:=s;
s:=t.otvet2;
RadioButton2.Caption:=s;
s:=t.otvet3;
RadioButton3.Caption:=s;
s:=t.otvet4;
RadioButton4.Caption:=s;
i:=i+1;
CloseFile(f);
end;
что то на подобие такого...
Ответить с цитированием
  #5  
Старый 26.06.2010, 00:22
Maximusrs Maximusrs вне форума
Прохожий
 
Регистрация: 25.06.2010
Сообщения: 8
Репутация: 10
По умолчанию

там еще проверка конца файла стоит,эта операция работает нормально,да и присвоение каждый раз идет ток часть текста куда то съедается....может все дело в описании длины строк?
Ответить с цитированием
  #6  
Старый 26.06.2010, 00:53
Maximusrs Maximusrs вне форума
Прохожий
 
Регистрация: 25.06.2010
Сообщения: 8
Репутация: 10
По умолчанию

неужели никто ничего не может подсказать?
Ответить с цитированием
  #7  
Старый 26.06.2010, 01:19
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

возможно. у тебя же на ответ всего 30 символов отведено.
плюс, не забудь, что RadioButton автоматически не меняет размер, поэтому часть текста может обрезаться по границе компонента.
Ответить с цитированием
  #8  
Старый 26.06.2010, 01:23
Maximusrs Maximusrs вне форума
Прохожий
 
Регистрация: 25.06.2010
Сообщения: 8
Репутация: 10
По умолчанию

но ведь вопрос вбивается B Label и все равно части текста нет...
можешь написать образец как считывать и переприсваивать с обычного текстого файла,ну например через обычные условия проверки конца строки и конца файла?
Ответить с цитированием
  #9  
Старый 26.06.2010, 02:01
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
var
  L : TStringList;
  I, N : Integer;
begin
  L := TStringList.Create;
  L.LoadFromFile('myfile.txt');
  For I := 0 To (L.Count div 6) Do
    Begin
       label1.Caption := L[I*6];
       RadioButton1.Caption := L[I*6 + 1];
       RadioButton2.Caption := L[I*6 + 2];
       RadioButton3.Caption := L[I*6 + 3];
       RadioButton4.Caption := L[I*6 + 4];
       N := StrToInt(L[I*6 + 5]);
    End;
end;
Ответить с цитированием
  #10  
Старый 26.06.2010, 02:24
Maximusrs Maximusrs вне форума
Прохожий
 
Регистрация: 25.06.2010
Сообщения: 8
Репутация: 10
По умолчанию

выходит след-я ошибка:
Project Test.exe raised exeption class EConvertError with message 'Что такое математика' is not a valid integer value'.Process stopped.Use step or run to continue
Ответить с цитированием
  #11  
Старый 26.06.2010, 04:34
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Формат файла:
Код:
вопрос
ответ1
ответ2
ответ3
ответ4
номер_правильного_ответа

проверь. так должно быть для всех вопросов. Если ответов < 4 то делать пустые строки...
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:34.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025