Не понятная проблем с лишним знаком вопроса. (решено)

Любые обсуждения, не нарушающие правил форума.

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

Ответить
Deimos
постоялец
Сообщения: 174
Зарегистрирован: 16.01.2010 23:31:30

Не понятная проблем с лишним знаком вопроса. (решено)

Сообщение Deimos »

Не знал куда корректней отписать проблему.

Есть сторонний софт, который писан на делфях. Он загружает тест из файла (текстового), сохраненного в настройках.

Есть мой управляющий софт (писан на всеми нами любимом), который заменяет родной загружаемый файл на мой и запускает софтину (которая на буржуйских/криворуких делфях). В некоторых моментах в управляемой софтине, в текстах, появляются символы "?" (знак вопроса). Все преобразования кодировок проведены, текст читаем, но этот-вот "?" я не могу нигде споймать. Нет никаких скрытых символов, нет никаких несоответствий кодировок, нет никаких непечатных символов ни в одном редакторе, но "?" есть... даже не знаю куда копать...
Последний раз редактировалось Deimos 30.03.2018 08:53:17, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

Deimos писал(а):но "?" есть

это не знак ?, это на самом деле половина буквы.
я такое иногда вижу. ищите некорректное обрезание текста / строки.
Например обрезаете строку строго на 33 символа и она иногда будет возвращать вопрос.
при склейке таких строк, знак вопроса будет в центре строки.

Это один из вариантов, безусловно есть ещё варианты, но суть:
ищите некорректное обрезание строки или нечто, позволяющее обрезать пол буквы.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

даже не знаю куда копать..
пересмотрите свой код. Возможно не заметили мелочь.

В какой кодировке файл?
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Ошибка в 17-й строке. Без твоего кода это просто угадайка
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Эти знаки вопроса где появляются-то хоть? При выводе той буржуйской софтиной? Значит это скорее всего символ, которого нет в используемом шрифте.
Deimos
постоялец
Сообщения: 174
Зарегистрирован: 16.01.2010 23:31:30

Сообщение Deimos »

zoltanleo писал(а):Без твоего кода это просто угадайка


Тоже да. Но код совсем простенький, вот и думал, что не нужен...

Код: Выделить всё

var
   tmplist:tstringlist;
   aprocess:tprocess;
begin
     //текст
    tmplist:=tstringlist.create;
     tmplist.LoadFromFile(me.Text);
     tmplist.Text:=UTF8ToWinCP(tmplist.Text);
     tmplist.SaveToFile('soft.txt');
       aprocess:=tprocess.Create(nil);
       aprocess.Options:=[];
       aprocess.CommandLine:=softRun.FileName;
       aprocess.Execute;
       freeandnil(aprocess);
     freeandnil(tmplist); 
end;


Никаких обрезаний текста нет в принципе. Кодировка оригинала - UTF8. "?" появляется первым знаком перед текстом.

Добавлено спустя 1 минуту 48 секунд:
Mirage писал(а):Значит это скорее всего символ, которого нет в используемом шрифте.

в оригинальном тексте на этой позиции нет никакого символа.

вопрос снят и закрыт. недосмотрел. Это был BOM
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

упс - вопрос закрыт.
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Сообщение Ichthyander »

Ох уж этот BOM )
ElectroGuard
новенький
Сообщения: 71
Зарегистрирован: 03.06.2016 11:10:22

Сообщение ElectroGuard »

Лучше бы его автоматом распознавать, конечно. Как Delphi часто делает.
Ответить