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

Вниз

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

 
programmer90   (2008-09-10 12:33) [0]

Здравствуйте уважаемые мастера. Ох уж эти кодировки....
Проблема такова при копировании из мемо в буфер обмена, и при вставке   например в блокнот, русские буквы неверно отображаются.
А точно чнаю что надо перекодировать, даже знаю откуда куда из Win1251 в Dos 866.
Так вот до того как возникла эта трабла, я использовал такой код
PChr := Memo[AdvPageControl1.ActivePageIndex].Lines.GetText;
 AnsiToOem(Pchr,Pchr);
 Memo[AdvPageControl1.ActivePageIndex].Lines.Text := StrPas(Pchr);
 memo[AdvPageControl1.ActivePageIndex].Lines.SaveToFile("C:\Progra~1\FPSE\Project s\file.pas");
 ShellExecute(Handle,"open","cmd","/c  C:\Progra~1\FPSE\bin\i386-win32\fpc C:\Progra~1\FPSE\Projects\file.pas >C:\Progra~1\FPSE\Projects\file.err   && cls && c:\progra~1\fpse\projects\file.exe && pause",nil,1);
  PChr := Memo[AdvPageControl1.ActivePageIndex].Lines.GetText;
 OemTOAnsi(Pchr,Pchr);
 Memo[AdvPageControl1.ActivePageIndex].Lines.Text := StrPas(Pchr);
Этот код был специально написан чтобы привыполнении  16-битных програм через командную строку Русские буквы правильно отображались. После того как я приминил этот код , вдруг почему-то буфер обмена стал глючить.Как это исправить?
Заранее спс.


 
clickmaker ©   (2008-09-10 12:38) [1]

где в коде обращение к буферу обмена?
что значит "буфер обмена стал глючить"?


 
Правильный$Вася   (2008-09-10 12:41) [2]

1. The caller is responsible for freeing the returned value using the StrDispose procedure.
2. не вижу использования буфера обмена


 
programmer90   (2008-09-10 12:43) [3]


> где в коде обращение к буферу обмена?

memo[advpagecontrol1.ActivePageIndex].CopyToClipBoard;
Вот обращение.
Код которы был указан в [0] это вроде не имеет прямого отношения к копрованию, это совсем другое событие, просто я уверен что это и явилось причиной....
> что значит "буфер обмена стал глючить"?

Это означает что  копируем это:
begin
writeln("Привет");
End.
,а получаем это:
begin
writeln("Ïðèâåò");
End.


 
clickmaker ©   (2008-09-10 12:52) [4]

> [3] programmer90   (10.09.08 12:43)

charset у шрифта того, куда копируешь, какой?


 
programmer90   (2008-09-10 12:59) [5]


> charset у шрифта того, куда копируешь, какой?

Кажется кириллический....


 
brother ©   (2008-09-10 13:00) [6]

> Кажется

когда кажется - крестятся. если точно?


 
programmer90   (2008-09-10 13:03) [7]

Я пытался  так сделать

PChr := Memo[AdvPageControl1.ActivePageIndex].Lines.GetText;
AnsiToOem(Pchr,Pchr);{OemToAnsi(Pchr,Pchr);}
Memo[AdvPageControl1.ActivePageIndex].Lines.Text := StrPas(Pchr);
memo[advpagecontrol1.ActivePageIndex].CopyToClipBoard;

Но это не помогло...
Если какие-нибудь средства для работы с буфером обмена, например изменить текстовую информацию ?


 
programmer90   (2008-09-10 13:05) [8]

Да  и в блокноте и мемо оба кириллические. Я там пытался изменить на другие чарсеты, эффекта нет.


 
programmer90   (2008-09-10 13:08) [9]

Да кстати при сохрании  мемо в файл, всё нормально.
Я проверил сохранил файл на диске .Поэтому я думаю что проблемы именно с буфером обмена...


 
Правильный$Вася   (2008-09-10 13:12) [10]


> memo[advpagecontrol1.ActivePageIndex].CopyToClipBoard;Вот
> обращение.

это до твоей перекодироки из [0] или после?


 
Amoeba ©   (2008-09-10 13:22) [11]

Проблемы копирования русского текста в clipboard и обратно:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=780


 
programmer90   (2008-09-10 13:29) [12]


> [11]

помогло. большое спасибо.


 
Anatoly Podgoretsky ©   (2008-09-10 13:30) [13]

> programmer90  (10.09.2008 12:33:00)  [0]

AnsiToOem - For compatibility with 16-bit versions of Windows


 
programmer90   (2008-09-10 13:34) [14]


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

Я убедился что компатибельность к буферу обмена не относится)))


 
programmer90   (2008-09-10 13:36) [15]


> это до твоей перекодироки из [0] или после?

Они находятся в разных обработчиках.... но если вы о том где эти обработчики находятся , то  копирование находится выше


 
Правильный$Вася   (2008-09-10 14:10) [16]


> Они находятся в разных обработчиках..

и что?
какой из них раньше выполняется? может, он и портит?


 
Anatoly Podgoretsky ©   (2008-09-10 14:19) [17]

> programmer90  (10.09.2008 13:34:14)  [14]

А кого интересует буфер обмена в свете AnsiToOem



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

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

Наверх





Память: 0.48 MB
Время: 0.007 c
4-1197966725
Double_V
2007-12-18 11:32
2008.10.19
Переключение раскладки в Hook-e


3-1208256118
webpauk
2008-04-15 14:41
2008.10.19
Добавление в таблицу


2-1221236761
New_ser
2008-09-12 20:26
2008.10.19
Как настроить ADOConnection для работы в сети?


2-1221212975
Alex_C
2008-09-12 13:49
2008.10.19
Установить формат даты и времени


15-1219834044
Riply
2008-08-27 14:47
2008.10.19
Отложенная запись.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский