Русский > Разработчикам

Разработка скриптов (вопросы)

<< < (5/35) > >>

Aig:

--- Цитата: djek-ural от 06 Января 2009, 13:54:13 ---[Error] (688:9): Syntax error
[Error] (688:9): Syntax error
на строке под номером 688 , записано следуюшее
pri := `` ;
переменная типа WideString
У меня есть описание ошибок для Турбо Паскаля , но там номера этой ошибки нет

--- Конец цитаты ---
Давненько не брал я в руки шашек... На дельфе уже не программирую, но в паскале по-моему не было таких кавычек - `. По крайней мере я не видел, чтобы их использовали. Попробуй заменить ` на нормальные - ' .

nostra:

--- Цитировать ---Попробуй заменить ` на нормальные - ' .
--- Конец цитаты ---

Да, действительно кавычки не те.

djek-ural:

--- Цитата: nostra от 08 Января 2009, 17:44:39 ---
--- Цитировать ---Попробуй заменить ` на нормальные - ' .
--- Конец цитаты ---

Да, действительно кавычки не те.

--- Конец цитаты ---

Да с кавычками я действительно обложался , в книге написано было выделять апострофом , вот и подумал что тот который был в строке рядом с цифрами , где буква Ё .
Огромное спасибо Aig за подсказку :) :) :)

Alik:
To: djek-ural

Во первых несколькими постами выше указана неправильная функция CheckNum
Правильно так:


--- Код: ---// Удаляет из строки все, что не является цифрой
function CheckNum(s: widestring): widestring;
var
 st: widestring;
 i: integer;
begin
 if pos('&#8364;', s) > 0 then
  delete(s, 1, 7);
 if pos('&#165;', s) > 0 then
  delete(s, 1, 6);
 for i := 1 to length(s) do
   if (s[i] >= '0') and (s[i] <= '9') then
     st := st + s[i];
 result := st;
end;

--- Конец кода ---
Обратите внимание на квадратные скобки после переменной s, в которых указан индекс символа.

Во вторых сделать преобразование времени в нужный формат можно проще:


--- Код: ---// Возвращает число, переведенное в текст. Преобразует значения вида Х в значение вида 0Х
// То есть, например, заменяет 1 на 01.
Function Zero(I: Integer): WideString;
Var
 S: String;
Begin
 S := IntToStr(I);
 If Length(S) = 1 Then S := '0' + S;
 result := S;
End;

// Функция перевода времени из формата ХХХ мин в формат ХХ:ХХ:ХХ
Function CorrectTime(Time: WideString): WideString;
Var
 Tmp: Integer;
Begin
 Tmp := StrToInt(CheckNum(Time));
 Result := Zero(Tmp Div 60)+':'+Zero(Tmp Mod 60)+':00'; // Два нуля в конце - это секунды, можно убрать
End;
--- Конец кода ---

Я не тестил, но 99% код рабочий.

djek-ural:

--- Цитата: Alik от 09 Января 2009, 12:36:40 ---To: djek-ural

Во первых несколькими постами выше указана неправильная функция CheckNum
Правильно так:


--- Код: ---// Удаляет из строки все, что не является цифрой
function CheckNum(s: widestring): widestring;
var
 st: widestring;
 i: integer;
begin
 if pos('&#8364;', s) > 0 then
  delete(s, 1, 7);
 if pos('&#165;', s) > 0 then
  delete(s, 1, 6);
 for i := 1 to length(s) do
   if (s[i] >= '0') and (s[i] <= '9') then
     st := st + s[i];
 result := st;
end;

--- Конец кода ---
Обратите внимание на квадратные скобки после переменной s, в которых указан индекс символа.

Во вторых сделать преобразование времени в нужный формат можно проще:


--- Код: ---// Возвращает число, переведенное в текст. Преобразует значения вида Х в значение вида 0Х
// То есть, например, заменяет 1 на 01.
Function Zero(I: Integer): WideString;
Var
 S: String;
Begin
 S := IntToStr(I);
 If Length(S) = 1 Then S := '0' + S;
 result := S;
End;

// Функция перевода времени из формата ХХХ мин в формат ХХ:ХХ:ХХ
Function CorrectTime(Time: WideString): WideString;
Var
 Tmp: Integer;
Begin
 Tmp := StrToInt(CheckNum(Time));
 Result := Zero(Tmp Div 60)+':'+Zero(Tmp Mod 60)+':00'; // Два нуля в конце - это секунды, можно убрать
End;
--- Конец кода ---

Я не тестил, но 99% код рабочий.


--- Конец цитаты ---

Спасибо большое за подсказку , я так то прогрммировал на Бейсике , и это моё первое творение на Паскале , возможно что некоторых функций процедур я еще не знаю...
Последнеяя моя редакция также была немного оптимизирована , за счет выведения нескольки строк кода в разряд процедур...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии