Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Вниз

Опять проблемы с кодировкой.   Найти похожие ветки 

 
programmer90   (2008-07-21 00:58) [0]

Ещё раз приветствую всех.Опять я со своим проектом. Такая проблема: При выводе данных русскими буквами во Free Pascal-e всё работает нормально, то есть если у нас опреатор writeln("Привет"); то вывод будет: Привет, но при запуске программы вне оболочки Free Pascal(ShellExecute(handle,"open","cmd"," /c c:\fpc\2.2.0\bin\i386-win32\fpc d:\file.pas   && cls && d:\file.exe  && pause",nil,SW_Show);) слово привет он выводит какими-то закорючками, короче говоря кодировака не та. . Что можно сделать чтобы вывод был нормальным,то есть нормально выводил на русском.
Спасибо.


 
Dmitry S ©   (2008-07-21 09:42) [1]

AnsiToOemBuff


 
Anatoly Podgoretsky ©   (2008-07-21 09:59) [2]

> Dmitry S  (21.07.2008 9:42:01)  [1]

>>> For compatibility with 16-bit versions of Windows


 
Dmitry S ©   (2008-07-21 10:02) [3]


> Anatoly Podgoretsky ©

и что?
CharToOemBuff


 
Milk   (2008-07-21 11:08) [4]

ShellExecute(handle,"open","cmd"," /c c:\fpc\2.2.0\bin\i386-win32\fpc d:\file.pas   && cls && d:\file.exe  && pause",nil,SW_Show);
Я не вижу здесь вывода на консоль:(
Ну, а я для консольных приложений (очень давно, возможно и не рационально) написАл функцию.

var RusStr: String;

...

function ToRussia(ss: string): String;
begin
System.SetLength(NewStr, Length(ss));
CharToOem(PChar(ss), PChar(RusStr));
Result:= PChar(RusStr);
end;


и далее Writeln(ToRussia("Привет");


 
brother ©   (2008-07-21 11:09) [5]

название функции улыбнуло)
зы torussian :)


 
programmer90   (2008-07-21 11:11) [6]


> и что?CharToOemBuff

Извините, но как я это должен написать и где, прямо перед выраж. или как? на простом примере объясните плиз.


 
Milk   (2008-07-21 11:13) [7]

System.SetLength(NewStr, Length(ss));
понимать как RusStr:(


 
Anatoly Podgoretsky ©   (2008-07-21 11:17) [8]

> Dmitry S  (21.07.2008 10:02:03)  [3]

А вот теперь ничего, ну может не CharToOemBuff, а CharToOem


 
Anatoly Podgoretsky ©   (2008-07-21 11:27) [9]

> Milk  (21.07.2008 11:08:04)  [4]

Данная функция не ToRussia, а ANSI/Unicode в OEM
И теоритически конкретно с русским могут быть серьезные проблемы, именно  закорючкит (rhzrjpz,hs).


 
Milk   (2008-07-21 11:36) [10]


> Anatoly Podgoretsky ©   (21.07.08 11:27) [9]

> Данная функция не ToRussia, а ANSI/Unicode в OEM

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


 
Anatoly Podgoretsky ©   (2008-07-21 11:46) [11]

> Milk  (21.07.2008 11:36:10)  [10]

Ну я тоже посоветую пользоваться именно ею в заведомо известном окружение, но не риску гарантировать на неизввестном компьютере.


 
programmer90   (2008-07-21 12:26) [12]


> ShellExecute(handle,"open","cmd"," /c c:\fpc\2.2.0\bin\i386-
> win32\fpc d:\file.pas   && cls && d:\file.exe  && pause",
> nil,SW_Show);
> Я не вижу здесь вывода на консоль:(

Код программы находиться в Мемо, после чего содерживое мемо идет в файл, а после этого этот файл компилируется, и затем запускается...
В delphi 2007 for .NET - PChar вообще не хочет работать...
> var RusStr: String;...function ToRussia(ss: string): String;
> begin System.SetLength(NewStr, Length(ss)); CharToOem(PChar(ss),
>  PChar(RusStr)); Result:= PChar(RusStr);end;
Это вроде как написал...
Вы будете смеяться, ситуаця настолько непонятная что я даже пытался записать в обработчик события ОнБаттонКлЫк Writeln(ToRussia("Привет");  ессесно  не работает:)
Значит нужно организовать консоль? Как помогите сделать ету фигню?


 
Smile   (2008-07-21 12:34) [13]

> programmer90   (21.07.08 12:26) [12]


> Код программы находиться в Мемо

А как поведет себя твоя программа, если в Мемо будет какая-нибудь "чепухня"?
Здесь уже видимо будет не до кодировок. Попробуй изменить подход, или, во всяком случае, конкретизируй свою проблему


 
Anatoly Podgoretsky ©   (2008-07-21 13:45) [14]

> programmer90  (21.07.2008 12:26:12)  [12]

> В delphi 2007 for .NET - PChar вообще не хочет работать...

И правильно, чего такие опасные указатели не видали в NET - буфер оверфлоу устраивать?
Для вас же стараются, делают надежные системы, а вы все стараетесь разрушить, откуда то берете старье, из Win16 - хватит.


 
programmer90   (2008-07-21 18:46) [15]


> А как поведет себя твоя программа, если в Мемо будет какая-
> нибудь "чепухня"?

Если будет  "чепухня" соответсвенно копилятор выдаст ошибку, ну я вывод перенаправлю это через коммандную строку в файл после этого в соответ. с ошибкой выведу сообщение на языке который выбран пользователем(три языка)...
Уважаемый Anatoly Podgoretsky ©   (21.07.08 13:45) [14], вообще можно что-нибудь сделать?


 
ketmar ©   (2008-07-22 18:14) [16]

>[15] programmer90 (2008-07-21 18:46:00)
>вообще можно что-нибудь сделать?

сначала учиться, потом писать, а не наоборот? говорят, очень помогает.

---
Do what thou wilt shall be the whole of the Law.


 
programmer90   (2008-07-23 09:57) [17]

ketmar ©   (22.07.08 18:14) [16] спасибо за совет, очень помогли...


 
ketmar ©   (2008-07-23 19:20) [18]

>[17] programmer90 (2008-07-23 09:57:00)
тогда чего ты ещё здесь? учись иди.

---
Do what thou wilt shall be the whole of the Law.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.041 c
2-1217389405
Viod
2008-07-30 07:43
2008.09.14
Работа с TTreeView


15-1216058157
{RASkov}
2008-07-14 21:55
2008.09.14
Брак ли?


15-1216788509
vajo
2008-07-23 08:48
2008.09.14
Что может быть с компьютером?


2-1217955652
Alex_C
2008-08-05 21:00
2008.09.14
Мелькание Hint при нажатой клавише Ctrl


2-1217780383
q911
2008-08-03 20:19
2008.09.14
Браузер на Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский