Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Помогите в написании программы, плиз!   Найти похожие ветки 

 
Topepo ©   (2004-10-31 12:41) [0]

Мне 14 лет, я устроился в рабочую фирму по программированию для подростков, мне надо написать одну программу на Дэлфи. В ней я новичоки кое-чего могу недопонимать. программа эта тестовая оболочка для учащихся (типа просто тесты). я запоролся в кажись бы простом месте но никак не могу преодолеть этот запор. В моей программе тесты записаны в отдельный текстовый файл. Как мне сделать, чтобы программа, считывая вопросы, останавливалась на символе, допустим, "\".У меня написано:
procedure TForm1.Button1Click(Sender: TObject);
var
fname:string;
buf:string;
s:string[255];
i:integer;
begin
i:=0;
fname:="12345.txt";
assignfile(f,fname);
reset(f);
repeat
 readln(f,s);
  if s[i] <> "\"
  then buf:=buf+s+" ";
until s[i] <> "\";
closefile(f);
form1.Memo1.Lines.Add(buf);
end;
. Но оно не хотит нифига делать! Подскажите, ПОЖАЛУЙСТА, как мне быть?


 
ILIHA   (2004-10-31 12:56) [1]

А причем тут базы данных "Иль я чет не понимаю"


 
Topepo ©   (2004-10-31 13:01) [2]

При том, что Базой Данных, как бы "12345.txt", является БД вопросов в отдельном файле тестов


 
jack128 ©   (2004-10-31 13:10) [3]

где меняется значение i ?? и почему ты пишешь s[i] , где i = 0. В нулевом байте короткой строки храниться ДЛИНА строоки, а ты зачем то сравниваешь её с символом.  
Этот символ "\" может встретиться в любом месте строки?? (типа разделитель вопроса и ответа) Ну например так:
var
 s: string;
 f: TextFle;
 DelimiterPos: Integer;
...
AssignFile(f, "12345.txt");
reset(f);
try
 while not EOF(f) do
 begin
   ReadLn(f, s);
   DelimiterPos := Pos("\", s);
   if DelimiterPos > 0 then
     s := copy(s, 1, DelimiterPos - 1);
   Memo1.Lines.Add(s);
 end;
finally   // не забываем обработчики ошибок вставлять..
 CloseFile(f);
end;
Topepo ©   (31.10.04 13:01) [2]
является БД вопросов
-) Тогда любой файл является БД ;-)


 
Topepo ©   (2004-10-31 13:16) [4]

2jack128 ©, большое спасибо! Насчёт БД вопросов. В этом файле хранятся данные, так? место, где что-то хранится,может  называцца Базой. Вот и получается БД. Да и вообще))). мне ж 14 лет, вот и думай на каком я уровне знай в Дэлфе=)


 
Nous Mellon ©   (2004-10-31 13:39) [5]


> Но оно не хотит нифига делать! Подскажите, ПОЖАЛУЙСТА, как
> мне быть?

Не хотит и не надо :)


 
мазер   (2004-10-31 14:10) [6]

Удалено модератором
Примечание: Offtopic


 
VMcL ©   (2004-10-31 14:50) [7]

>>Topepo ©  (31.10.04 12:41)

>я запоролся в кажись бы простом месте но никак не могу преодолеть этот запор

Ты не на тот форум запостил. Тебе бы в медицинский, наверное, или в фармацевтический.


 
Topepo ©   (2004-10-31 15:53) [8]

VMcL ©   (31.10.04 14:50) [7]
Ты не на тот форум запостил. Тебе бы в медицинский, наверное, или в фармацевтический.

Не. Там я уже был. Ничё хорошего не подсказали=)))


 
Marser ©   (2004-10-31 16:42) [9]

Удалено модератором


 
Knight ©   (2004-10-31 17:21) [10]

Делаешь текстовый файл в который пишешь
вопрос/ко-во ответов/ответ1/ответ2/.../ответN/номер правильного ответа/следующий вопрос/....

Пишешь:
func NextField:String; // читает по разделителям.

proc QuestionOut;
begin
 Inc(QCount);
 QMemo.Text:=NextField;
 n:=StrToInt(NextField);
 RadioGroup.Items.Clear;
 for i:=0 to n-1 do RadioGroup.Items.Append(NextField);
end;

Открываешь файл при старте теста

QCount:=0;
QuestionOut;

после ответа
if RadioGroup.ItemIndex=NextField then Inc(RightAnwers)
QuestionOut;

и т.д.


 
Knight ©   (2004-10-31 17:36) [11]


> после ответа
> if RadioGroup.ItemIndex=NextField then Inc(RightAnwers)
> QuestionOut;
> и т.д.

Поправиться пока никто не заметил... :)

if RadioGroup.ItemIndex=StrToInt(NextField) then Inc(RightAnwers)...

или

if RadioGroup.ItemIndex=StrToInt(NextField)-1 then Inc(RightAnwers)...
если номер правильного ответа соотнести не с RadioGroup, а с реальной нумерацией вариантов [1,2... etc.]


 
Topepo ©   (2004-11-01 09:04) [12]

Knight ©, пасиба за всё, но можно поинтересовацца? я маленько ламер в Дэлфи, так что не обессудь. Что такое QCount? И ваще, как написанный тобою код работает? принципы его работы объясни, плиз, а то я нифига не понял


 
NeyroSpace ©   (2004-11-01 09:34) [13]

>Topepo ©
LOL
Я в 14 лет игру на Ассемблере писал, так что 14 лет это уже достаточно для того, чтобы соображалка заработала.
RTFM! Что в переводе значит Рид Зе Ф#$%кин Мэнуал до полного просветления!


 
Danilka ©   (2004-11-01 09:41) [14]

Ну че, опять пацана маненького зачмырили, пальцы веером, какие усе крутые? :))

[12] Topepo ©   (01.11.04 09:04)
Вот здесь:
http://www.podgoretsky.com/ddp.html
есть: "Delphi 5. Руководство разработчика, том 1" и "Delphi 5. Руководство разработчика, том 2", скачай из и изучай на здоровье. Очень понятным, даже для новичков, все расписано. Одна из лучших книг по Дельфи.


 
Topepo ©   (2004-11-01 09:59) [15]

Danilka ©   (01.11.04 09:41) [14]
биг фенкс ту ю!
NeyroSpace ©   (01.11.04 09:34) [13]

> RTFM! Что в переводе значит Рид Зе Ф#$%кин Мэнуал до полного
> просветления!

Я ентих мануалоф прочитал до фига, ни в одном из них ничего путнего нету.Щас осталась последняя надежда - http://www.podgoretsky.com


 
Knight ©   (2004-11-01 20:07) [16]


> [12] Topepo ©   (01.11.04 09:04)
> Knight ©, пасиба за всё, но можно поинтересовацца? я маленько
> ламер в Дэлфи, так что не обессудь. Что такое QCount? И
> ваще, как написанный тобою код работает? принципы его работы
> объясни, плиз, а то я нифига не понял

QCount - это переменная для подсчёта общего количества вопросов
RightAnwers - это сколько было верных ответов...

И вообще, это не код, а только набросок... так сказать, общая идея... всё остальное, ты должен дописать сам :)



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.035 c
3-1098845518
vituha
2004-10-27 06:51
2004.11.21
dBase to Paradox


14-1099406558
BlackLord2003
2004-11-02 17:42
2004.11.21
Glyp s


11-1082757970
Lunnar
2004-04-24 02:06
2004.11.21
BAPFileBrowser


3-1098764960
YurikGL
2004-10-26 08:29
2004.11.21
IB Размер файла


3-1098296531
ввх
2004-10-20 22:22
2004.11.21
Ошибка при закрытии программы