![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Подскажите пожалуйста в чем ошибка,вот описание проблемы:
Мне нужно создать в Делфи программу-тест которая считывает вопросы и ответы из типизированного файла, считываю вопросы загоняю их в Label и RadioButton первый вопрос и ответы вбиваются нормально,а при следующих присваиваниях часть техта "съедается" идет смещение на некоторое число позиций, Что делать? |
|
#2
|
|||
|
|||
|
Пожалуйста помогите завтра с утра уже сдавать надо!!!!(((((((
|
|
#3
|
|||
|
|||
|
код в студию.
А то ответ будет - ошибка в 255 строке... |
|
#4
|
|||
|
|||
|
Весь код скинуть не смогу уже удалил эту часть в тексте программы. Напишу часть образца:
Код:
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
|
|||
|
|||
|
там еще проверка конца файла стоит,эта операция работает нормально,да и присвоение каждый раз идет ток часть текста куда то съедается....может все дело в описании длины строк?
|
|
#6
|
|||
|
|||
|
неужели никто ничего не может подсказать?
|
|
#7
|
|||
|
|||
|
возможно. у тебя же на ответ всего 30 символов отведено.
плюс, не забудь, что RadioButton автоматически не меняет размер, поэтому часть текста может обрезаться по границе компонента. |
|
#8
|
|||
|
|||
|
но ведь вопрос вбивается B Label и все равно части текста нет...
можешь написать образец как считывать и переприсваивать с обычного текстого файла,ну например через обычные условия проверки конца строки и конца файла? |
|
#9
|
|||
|
|||
|
Код:
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
|
|||
|
|||
|
выходит след-я ошибка:
Project Test.exe raised exeption class EConvertError with message 'Что такое математика' is not a valid integer value'.Process stopped.Use step or run to continue |
|
#11
|
|||
|
|||
|
Формат файла:
Код:
вопрос ответ1 ответ2 ответ3 ответ4 номер_правильного_ответа проверь. так должно быть для всех вопросов. Если ответов < 4 то делать пустые строки... |