Дело вот вобщем в чем- написал програму, которая в конечном итоге должна записать "записи" в типизированый файл при том соблюдая внешнее оформление текста(табуляцию-типо под таблицу). Возникла следующая проблема: после записи в файл и при дальнейшем его просмотре(что сказано в условии задачи) появляются лишние знаки табуляции(#9) а цифры не отображаются, такое ошюшение, что записаны в другой кодировке. Вобщем прикрепляю прогу и побочный файл(для чтения). Хелп!
volvo
28.11.2005 13:38
Цитата
такое ошюшение, что записаны в другой кодировке.
Дык... Ты же пишешь в типизированный файл, а не в текстовый... В файл записывается внутреннее представление записи типа stri4ka. В частности, числа пишутся не символами (как в текстовых файлах), а просто пишется содержимое того байта, который представляет число. Естественно, никаких переносов строки, ибо данные хранятся последовательно...
Когда прочтешь информацию из типизированного файла в структуру типа stri4ka, все встанет на свои места...
Цитата
после записи в файл и при дальнейшем его просмотре(что сказано в условии задачи)
прямо так и сказано, просмотреть с помощью текстового редактора? Может быть, прочесть содержимое файла и показать его на экране?
Alex7
28.11.2005 13:45
Цитата
прямо так и сказано, просмотреть с помощью текстового редактора? Может быть, прочесть содержимое файла и показать его на экране?
Да! так и сказано, почему я это и подчеркнул. Блин, так не охота переводить вам условие. короче думаю поймете)
Код
5.Переглянути за допомогою вбудованого в'ювера або одного з текстових редакторів структуру створеного типізованого файла. Записати розміри обох файлів: текстового і типізо¬ ваного, порівняти їх, зробити ВИСНОВКИ.
А вообще, если так посмотреть, то програма правильно написана?
Alex7
28.11.2005 19:12
Большое кстати, забыл прочитать одно условие задачи, и сразу же запутался, вставляя это в задачу. Мне нужно там вычеслить общее кол-во путевок, которые получила каждая школа. Вывести это все дело на экран. Т.е. я понимаю что нужно сравнить tabl[i].nomer со всеми tabl[i].nomer, выводив на экран только разные №-ра а потом tabl[i].kst_p с теми же i просумировать и вывести? Я пробовал начать это так:
for k:=0 { а вот что будет стоять на месте этого элемента, если он не существует? "мусор"? } to j-1 do if tabl[k].nomer <> tabl[i].nomer then write('№',i); { далее не придумал, т.к. даже не знаю правильный ли у меня ход мыслей) }
Inc(i); Until seekeof(f1); ...
volvo
28.11.2005 19:31
Alex7, ты знаешь, не у всех тут отличное знание украинского языка, а в твоей программе все по-украински, да и название kst_p мне лично ничего не говорит... Кроме того, я так и не видел задания, ты все время выдаешь только его куски, и то на непонятном языке. Возможно лм вообще присутствие одного и того же номера школы более одного раза в файле.
Извини, но если уж ты задаешь вопросы - задавай их как положено !!!
Alex7
28.11.2005 20:10
Цитата
Извини, но если уж ты задаешь вопросы - задавай их как положено !!!
Ну ладно, учту)
Цитата
Возможно лм вообще присутствие одного и того же номера школы более одного раза в файле.
А почему нет? Разве одна школа не может получить путевки в разные лагеря (например Zonz и Veselka ) ? Ладно, прийдется перевести полностью задание, ой, в падло то как ...но мне ж надо!
Цитата
1.Создать в текстовом редакторе файл,данные которого должны соответствовать таблице(оформление необязательное) {т.е. как и у меня}. Файл должен иметь разширение *.inf 2. В програме организовать создание нового типизированного файла с разширением *.dat , который должен состоять из записей, каждый из которых должен соответствовать определ. полю таблици. Одновременно розпечатать данные на экран. бла,бла,бла,,, подсказки...4) Когда типизированный файл создано, закрыть текстовой и дальше продолжать работать с предыд. Запрограмировать действия, которые необходимо выполнить, чтобы реализовать задачу, обработки введенной инфы. 5) просмотреть с помощью встроенного вьювера, или одного из текстовых редакторов структуру типизированного файла. Записать размеры обоих файлов, Сделать выводы. Индивидуальное задание: "Разпределение путевок в оздоровительно- спортивные (конц )лагеря по школам города! <таблица> Напечатать сумарное кол-во путевок, которое получила каждаю щкола.
Фуф, неужели енд? Я буду горько смеятся, если теперь, после прочтения задачи, мне ктото предложит более умный и простой алгоритм решения задачи!
М
Ты нам одолжение чтоли делаешь ? klem4
Alex7
28.11.2005 23:00
Цитата
Ты нам одолжение чтоли делаешь ? mad.gif
Дык, volvo, ты чо? Где это видано, чтобы кто-то просящий о помощи делал помогающему этим отдолжение? Я чото тебя совсем не понимаю!
М
Это не Volvo был ... klem4
Alex7
29.11.2005 21:53
Понял, но сути не меняет! Так кто-то может попробовать мне помочь именно с этим приколом? (Подсчетом общего кол-ва путевок по школам.)
Alex7
4.12.2005 18:25
Люди! ПЛИЗ! Хелп, ну! Я не могу таки до конца грамотно разобраться! Вот прога(та-же)
для пояснения- переменные: kst_p -это кол-во путевок, которые получила каждая школа sumkst_p - это кол-во путевок, которые получила каждая школа вместе(ЭТО МНЕ И НАДО СЕЦЧАС НАЙТИ) rad -рядок(который читаем)
Alex7
4.12.2005 21:23
Сои за как-бы оффтоп, но вот вобщем чо я наполовину сделал,НО опять таки же условие не хочет работать! ХЕЛП! Мне на завтра нужно идеально закончить прогу!
Writeln(' Кол-во путевок, которые получила КАЖДАЯ школа« :'); Write('Школа',#9); For z:=1 to i-1 do If z=1 then Write('№',tabl[z].nomer,#9) else begin sumkst_p:=0; For k:=1 to z-1 do If tabl[z].nomer=tabl[k].nomer then Inc(sumkst_p); If sumkst_p=0 then Write('№',tabl[z].nomer,#9); end; writeln; Write('Кол-во',#9); For z:=1 to i-1 do begin sumkst_p:=0; For k:=1 to i-1 do If tabl[z].nomer=tabl[k].nomer then begin sumkst_p:=sumkst_p+tabl[k].kst_p; tabl[k].nomer:=0; end; Write(sumkst_p,#9); end;
Вот. условие подсчета кол-ва путевок не работает!!!!
Write('Кол-во',#9); For z:=1 to i-1 do begin sumkst_p:=0; For k:=1 to i-1 do If tabl[z].nomer=tabl[k].nomer then begin sumkst_p:=sumkst_p+tabl[k].kst_p; tabl[k].nomer:=0; end; Write(sumkst_p,#9); end;
Выводит простовсе числа подрят, не сумируя.
Alex7
5.12.2005 0:32
Ясно. Вот, вобщем после пару часиков) я таки прогу доделал, если кому интирессно, то:
Цитата
Я не флужу!
program tablizja(lab9_10); {Uses CRT;} Type stri4ka= record nazva: string[20]; misze: string[20]; nomer: byte; kst_p: byte; vidp : string[50]; end; Var tabl: array[1..25] of stri4ka; sumkst_p,k,i,z: integer; f1name,f2name: string[50]; rad: string; f1: text; f2: file of stri4ka; Begin { Clrscr;} for z:=1 to 25 do writeln; for z:=1 to 80 do Write(#205);
Writeln(' Љi«мЄiбвм Їгвiў®Є, пЄг ®ваЁ¬ « Є®¦ иЄ®« :'); Write('Є®« ',#9); For z:=1 to i-1 do If z=1 then Write('ь',tabl[z].nomer,#9) else begin sumkst_p:=0; For k:=1 to z-1 do If tabl[z].nomer=tabl[k].nomer then Inc(sumkst_p); If sumkst_p=0 then Write('ь',tabl[z].nomer,#9); end; writeln; Write('Љ-бвм',#9); For z:=1 to i-1 do begin sumkst_p:=0; For k:=1 to i-1 do If (tabl[z].nomer=tabl[k].nomer)and(tabl[z].nomer<>0) then begin sumkst_p:=sumkst_p+tabl[k].kst_p; if z<>k then tabl[k].nomer:=0; end; If sumkst_p<>0 then Write(sumkst_p,#9); end; Writeln;