ZEOS RUSSIAN

Модератор: Модераторы

ZEOS RUSSIAN

Сообщение kit » 19.04.2018 10:02:00

Как сделать чтоб ошибки виводились на русском.
Если ставлю в Zeos.inc {$DEFINE RUSSIAN} то показивает такоe: ???????????????????????????????
kit
постоялец
 
Сообщения: 156
Зарегистрирован: 29.09.2016 09:39:07

Re: ZEOS RUSSIAN

Сообщение Снег Север » 19.04.2018 11:35:19

Телепаты ушли в отпуск, поэтому совершенно непонятно где и как показывает и знает ли топикстартер про преобразование кодировок...
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2990
Зарегистрирован: 27.11.2007 16:14:47

Re: ZEOS RUSSIAN

Сообщение Vadim » 19.04.2018 14:13:18

kit писал(а):{$DEFINE RUSSIAN}

это ни что иное, как cp1251, если Вам это о чём то говорит... :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: ZEOS RUSSIAN

Сообщение vada » 20.04.2018 11:40:26

С кодировками в лазарусе/фри-паскале еще та задница!!!!
Вот с недавних пор у меня начались чудеса в программе которая в фирме уже 5 лет трудится.
Передаю методу имя файла (юзвери повадились теперь длинные имена давать - удобно так).
Код: Выделить всё
  Od := TOpenDialog.Create(Self);
  Od.Filter := WinCPToUTF8('grf Проект (*.grf)|*.grf');
  Od.InitialDir := PathData;
  if Od.Execute
  then begin
    SourceDataFileName := (Od.FileName);
    SourceData.Destroy;
    SourceData := TSourceData.Create(false, FormMainFobos);
    if (SourceData.LoadDataFromFile(SourceDataFileName)) then
    begin
      SourceData.SetDataToScreenForm;

Код: Выделить всё
SourceDataFileName = 'D:\OP204W4\Work\Опора 5 ростверк по бортам\Эксплуатация с бульдозером большой ростверк с подпорной стенкой_врм\ОПОРА 5 СТОЙКА ДИАМ 25 сечение перемычки шаг 150.GRF'

Чтобы проще было 163 символа
А вот получает метод уже обрезанное имя файла
Код: Выделить всё
{ Загрузка данных из текстового файла }
function TSourceData.LoadDataFromFile(aFileName: String): Boolean;
var
  GRF:  TStringList;
  I, Count: integer;
  S: String;
begin
  FileName := AnsiToUtf8(aFileName);
  Result := true;

  if (FileName = '') then Exit;

  if not (FileExists(FileName))
  then begin
    S := 'Файл "' + UTF8ToWinCP(FileName) + '" не найден.';
    MessageDlgSysToUTF8('Файл исходных данных', S, mtInformation, [mbCancel], 0);
    Result := false;
    Exit;
  end;

Вот что приходит
Код: Выделить всё
aFileName = 'D:\OP204W4\Work\Опора 5 ростверк по бортам\Эксплуатация с бульдозером большой ростверк с подпорной стенкой_врм\ОПОРА 5 СТОЙКА ДИАМ 25 сечение перем?'

Чтобы проще было 148 символов

Естественно, файл не найден и досвиданья. :(

Уж я его и в такой кодировке, и в другой кодировке ... кучу типов строк перепробовал (String, AnsiString, WideByteString, ...)

В общем ... "Стаю на асфальте я в лыжи обутый..."

Куда копать? Кто знает?
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: ZEOS RUSSIAN

Сообщение pupsik » 20.04.2018 13:06:07

Куда копать? Кто знает?
уже "катались" на форуме по теме AnsiToUtf8 и WinCPToUTF8. Ну не всегда оно работаетЬ. Использовать аналоги CP1251To... или наоборот...

FileExists есть же FileExists для Utf8. Он то же не проходит и обрезает?

п.с.
А "залить" всё это художество в базу?
Или проводник всё наше... и плохо что мало влазит в именах. Вот бы ещё кратенькую характеристику втиснуть. :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: ZEOS RUSSIAN

Сообщение serbod » 20.04.2018 14:46:00

Код: Выделить всё
Od.Filter := WinCPToUTF8('grf Проект (*.grf)|*.grf');

Ахтунг, русские буквы в исходниках! Какая кодировка у самих исходников? Может там и не нужно ничего в UTF8 конвертить?
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: ZEOS RUSSIAN

Сообщение vada » 20.04.2018 18:14:33

pupsik
FileExists есть же FileExists для Utf8. Он то же не проходит и обрезает?

Обрезает раньше. Значение параметра уже кастрировано.
А "залить" всё это художество в базу?

Вот это я не понял. Гуишная прога. Заполняем форму с данными (куча вкладок). Сохраняем все это в файл. Если надо читаем, считаем, но ... опаньки! Нет такого файла. Юзвери приходят меня пинать, типа, чтозанах! Я все делал, посчитал, сохранил, хочу чёто поменять пересчитать... и привет!
Причем, все это началось недавно. Толи винду как-то обновили что-то там подругому стало... толи еще чего в космосе случилось. Пять лет так работали. И длинные имена были, и всякоразно. Вдруг такие косяки.
Стал смотреть дебагером. Параметр передается правильно, а внутри метода принятый параметр уже усеченный.
Картинку бы сюда положить. У меня скриншоты есть. Только их куда-то в инет сначала надо затолкать...

serbod
Ахтунг, русские буквы в исходниках! Какая кодировка у самих исходников? Может там и не нужно ничего в UTF8 конвертить?

Исходники в UTF8.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: ZEOS RUSSIAN

Сообщение pupsik » 20.04.2018 20:40:47

Обрезает раньше....Сохраняем все это в файл.
Если сохраняет... Знч. вы что то упустили при открытии. Ищите где.

По поводу базы. Ну кто виноват что у вас таким образом сохраняется? Применение базы часто облегчает жизнь. Да же при локальном использовании и редким доступом в сеть.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: ZEOS RUSSIAN

Сообщение sign » 21.04.2018 07:43:53

Посмотрите этот параметр:
Изображение
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: ZEOS RUSSIAN

Сообщение vada » 23.04.2018 11:51:51

sign
Нету
https://cloud.mail.ru/public/4iM7/w4CqKCbiR/regedit.png

Добавлено спустя 15 минут 48 секунд:
Вот если в облако доступ получился
https://cloud.mail.ru/public/7qNY/6fbPGNN7p/KO206_%D0%9F%D0%BE%D0%BB%D0%BD%D0%BE%D0%B5%20%D0%B8%D0%BC%D1%8F%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0.png
https://cloud.mail.ru/public/7qNY/6fbPGNN7p/KO206_%D0%98%D0%BC%D1%8F%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%20%D1%83%D0%B6%D0%B5%20%D0%BE%D0%B1%D1%80%D0%B5%D0%B7%D0%B0%D0%BD%D0%BE.png

Добавлено спустя 27 минут 52 секунды:
Обалдеть!!!!
Код: Выделить всё
unit SourceData;

{$mode objfpc}
{$H+}

interface

uses

Вся проблема в том что куда-то пропал {$H+}. Соответственно тип string стал ShortString.

Проблема решена!
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru