IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Таблица рекордов, Не пойму что не пашет
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской
Реальное имя: 1234

Репутация: -  -1  +


Вот делаю таблицу рекордов (в типизированном файле). Да не могу найти ошибку в алгоритме.
mas-массив типа string;
st-файл типа string.

rocedure Verif(Var F: st;Name,Ochki: String);
{Процедура предназначена для перепроверки рекордов в связи с новым достижением}
Var Points,Nick,A,Nick1,Points1: mas;
S : String;
I,J,Nom,I1,N,Chp : Integer;
Begin
N:=0;
While Not Eof(F) Do {Perezapis' v massiv}
Begin
Read(F,S);
Inc(N);
A[N]:=S;
End;
For I:=1 To N Do
Begin
S:=A[I];
For I1:=1 To Length(S) Do
Begin
Chp:=0;
While Chp=6 Do {Schitka odnoy stroki}
Begin
If S[I1]=' ' Then
Inc(Chp);
If S[I1]<>' ' Then Nick1[I]:=S[I1]+Nick1[I];{Svedeniya uje imeyuschihsya igrokov}
End;
While Chp=5 Do
Begin
If S[I1]=' ' Then
Inc(Chp); {eto ya seychas razrabativayu}
If S[I1]<>' ' Then Points1[I]:=S[I1]+Points1[I];
End; {Smeschenie na odnu stroku}
End;
If Ochki>=Points1[I] Then
Nom:=I;
For J:=1 To N-1 Do
Begin {Zapisivaem uchitivaya izmeneniya}
Nick[J]:=Nick1[J];
Points[J]:=Points1[J];
While J=Nom Do
Begin
Nick[Nom]:=Name;
Points[Nom]:=Ochki;
End;
End;
Rewrite(F);
Reset(F);
For J:=1 To N Do
Begin
S:='';
S:=J+ ' '+Nick[J]+' '+Points(J);
Write(F,S);
End;
Close(F);
End;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






            For J:=1 To N Do
Begin
S:='';
S:=J+ ' '+Nick[J]+' '+Points(J); { <--- Ошибка здесь !!! }
Write(F,S);
End;

Нельзя перемешивать строки с числами... Да и скобки круглые у Points, хотя должны быть квадратные... Преобразуй число J в строку (функция IntToStr взята из хелпа TP 7.0):
function IntToStr(I: Longint): String;
{ Convert any integer type to a string }
var
S: string[11];
begin
Str(I, S);
IntToStr := S;
end;

Твой фрагмент будет выглядеть так:
            For J:=1 To N Do
Begin
S:='';
S:=IntToStr(J)+ ' '+Nick[J]+' '+Points[J];
Write(F,S);
End;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской
Реальное имя: 1234

Репутация: -  -1  +


Функция IntToStr действительно хорошо должна работать. Но только должна. Процедуру Str я уже использовал, но эффект тот же-выводятся каракули не многим похожие на цифры. Может быть просто строку нельзя выводить на экран в графическом режиме?
Да, и почему здесь...

Read(F,S);


...выводится ошибка 100(Disk read error).
Очень странно.
А типизированные файлы создаются в Pascal или отдельным алгоритмом?

Сообщение отредактировано: 1234 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
Может быть просто строку нельзя выводить на экран в графическом режиме?
А ты что, где-то показал, КАК ты выводишь строку на экран? Да еще в графике? Здесь не телепаты сидят, кстати...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской
Реальное имя: 1234

Репутация: -  -1  +


Вывожу я строку процедурой OutTextXY. Но тут понял, что через текстовый файл будет лучше. Но снова ошибка-Range Check Error. Что это вообще значит?

Сообщение отредактировано: 1234 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(1234 @ 8.02.2007 15:18) *

Функция IntToStr действительно хорошо должна работать. Но только должна. Процедуру Str я уже использовал, но эффект тот же-выводятся каракули не многим похожие на цифры. Может быть просто строку нельзя выводить на экран в графическом режиме?

Хм, можно я версию скажу? Вы при выводе текста какой шрифт используете? DefaultFont? Он у многих неправильно выводит цифры (даже где-то тема была, в которой человек на это жаловался). Используйте векторные шрифты.
Кстати, я только что дописал chr_edit (предварительная версия, но пока багов не обнаружено). Так что если хотите русифицировать свою программу - могу кинуть русский готический шрифт и сам редактор.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской
Реальное имя: 1234

Репутация: -  -1  +


Да, здравствуйте! Скиньнте,пожалуйста русский готический шрифт и сам редактор.Заранее благодарен.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(1234 @ 8.02.2007 20:17) *

Да, здравствуйте! Скиньнте,пожалуйста русский готический шрифт и сам редактор.Заранее благодарен.

Хорошо, держите. Вам выпало почётное право первому протестировать мою новую программу. За размер модулей не ругайте, я их писал давно, для себя и на все случаи жизни (сам иногда удивляюсь, что столько накатал). Тот, кто сможет разобраться в этих кошмарных модулях - Воистину Великий Программист. Пока надёжность программы не проверена, заранее сохраните где-нибудь копии шрифтов, чтобы потом в случае их порчи можно было восстановить.
Там пока на русский переведён только goth.chr. У меня он работает.
Версия винрара - 3.51.


Прикрепленные файлы
Прикрепленный файл  chr.rar ( 115.23 килобайт ) Кол-во скачиваний: 196


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Опять изобретение велосипедов... Шрифты русифицированы N лет назад:
BGI - Русифицированные BGI фонты
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(volvo @ 8.02.2007 20:37) *

Опять изобретение велосипедов... Шрифты русифицированы N лет назад:
BGI - Русифицированные BGI фонты

Спасибо. Но придерусь: вдруг кому-нибудь понадобится буква "Ё"? А из тех, что на сайте, она есть только в litt и sans. Конечно, без неё прекрасно можно обойтись, но некоторые предпочитают использовать русский язык полностью, без усечений типа замены ё на е. Так что редактор пожалуй имеет смысл.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


TarasBer, фантастически удобный редактор!
В качестве предложения - перекомпилировать в FPC что бы было в окошке виндовом (код не смотрел, не знаю насколько это будет сложно)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской
Реальное имя: 1234

Репутация: -  -1  +


Мой вопрос повис в воздухе. А тема превратилась в бенефис г-на Березняка...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Цитата
Но тут понял, что через текстовый файл будет лучше. Но снова ошибка-Range Check Error.
Прекрасно... Значит, ты менял код (на обработку текстового файла)? Покажи хотя бы строку, на которой происходит Range Check Error...

Цитата
Что это вообще значит?
Выход за границы массива это значит... Вот и хотелось бы посмотреть, ГДЕ именно, и тогда, возможно, будет понятно ПОЧЕМУ это происходит...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской
Реальное имя: 1234

Репутация: -  -1  +


В самом начале:

A[N]:=S;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






{$TELEPATHY ON}

Если ты работаешь с текстовыми файлами, то с большой степенью вероятности тебя спасет
     While Not SeekEof(F) Do  { <--- SEEK добавлено }
Begin
ReadLN(F,S); { <--- LN добавлено }
Inc(N);
A[N]:=S;
End;
Больше ничего без твоего TXT файла и того, как именно описан тип mas (массив, понятно, но на сколько элементов??? Может, элементарно у тебя строк в файле больше?) сказать не могу...

{$TELEPATHY OFF}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской
Реальное имя: 1234

Репутация: -  -1  +


Да, видимо что-то не то. А время поджимает. Поэтому... набираюсь наглости ... и прошу прислать мне исходник с подобной подпрограммой. Ах да, и ещё вопрос. Как я понял из множества папок Сhr я выбрал одну и послал её в нужную директорию. Но не катит. Это означает, что в программе присутствие русификатора нужно как-то прописать. Если да, то как?

Сообщение отредактировано: 1234 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Цитата
Поэтому... набираюсь наглости ... и прошу прислать мне исходник с подобной подпрограммой.
no1.gif Не пойдет... У меня - встречное предложение, давай лучше ты вышлешь сюда (или в приват, если не хочешь показывать форуму) полный исходник твоей программы с TXT файлом вместе... Чтобы можно было запустить и посмотреть, ПОЧЕМУ происходит ошибка...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской
Реальное имя: 1234

Репутация: -  -1  +


Да я уже не успеваю. Поэтому придётся без этих рекордов. Сейчас меня больше интересует интерфейс: насколько я знаю у каждого типа шрифта есть свой код. Как мне вообще можно связать любой из Chr с моей программой. Например, с той что вы мне посоветовали, сказав что её давно выпустили. А что касается прислать, то могу только завтра. После презентации проекта. Хотя, думаю, на кой чёрт она вам нужна. Вы такую за 5 минут наклепаете.

Сообщение отредактировано: 1234 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(1234 @ 9.02.2007 17:06) *

Да я уже не успеваю. Поэтому придётся без этих рекордов. Сейчас меня больше интересует интерфейс: насколько я знаю у каждого типа шрифта есть свой код. Как мне вообще можно связать любой из Chr с моей программой. Например, с той что вы мне посоветовали, сказав что её давно выпустили. А что касается прислать, то могу только завтра. После презентации проекта. Хотя, думаю, на кой чёрт она вам нужна. Вы такую за 5 минут наклепаете.

Готический шрифт задаётся строчкой SetTextStyle(4, 0, 4);
А для замены стандартного готического шрифта на модифицированный надо найти goth.chr в папке *** и заменить файл. *** - это та, которую вы указали при вызове InitGraph (по-моему, так).
Или не готический (чего это я всё о нём?), а любой другой.
К тому же в Паскале можно поступить так:

var
MyFont: integer;
...
MyFont := InstallUserFont('abcd');
if MyFont >= 0 then
SetTextStyle(MyFont, 0, 4);


Abcd - это имя файла со шрифтом (без расширения). То есть если вы хотите загрузить rgot.chr, то вместо "abcd" пишете "rgot".
P.S. В редакторе замечены баги:
1. Если завести розовую линию за край символа и стереть правой кнопкой все линии, то розовая линия вылезет далеко справа (исправил)
2. Файлы с русскоязычным названием глючат (исправил)
3. Файлы с названием не из 4х букв глючат (не исправил, по-моему не лечится).
4. Точки с координатами < 0 по X отображаются далеко справа (нечего левее границы рисовать).
5. В некоторых символах некоторых шрифтов более 256 векторов. Теперь верхняя граница - 320.
Кстати, в стандартных шрифтах столько артефактов (лишних векторов)! Особенно отвратителен bold.
Новая версия (1.01):

Сообщение отредактировано: TarasBer -


Прикрепленные файлы
Прикрепленный файл  chr.rar ( 80.17 килобайт ) Кол-во скачиваний: 171
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.10.2020 3:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name