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

Вниз

Как перевести текст из WIN кодировки в DOS кодировку ?   Найти похожие ветки 

 
Slonco   (2004-10-01 09:26) [0]

Пробовал функцию AnsiToOEM - выдала ошибку "Access violation". Такое впечатление, что этой функции просто нет (хотя при Ctrl+SPACE выдает ее подсказкой). Есть ли еще способы? Или я не так использую эту функцию?
Спасибо.


 
MBo ©   (2004-10-01 09:29) [1]

CharToOem(Buff)
пример в FAQ


 
Slonco   (2004-10-01 09:34) [2]

Вот такая ошибка выползает...

Project Alerter.exe raised exception class EAccessViolation with message "Access violation at address 77E372DC in module "user32.dll". Write of address 019048F5". Process stopped. Use Step or Run to continue.

Пробовал CharToOEM - та же беда :((


 
MBo ©   (2004-10-01 09:46) [3]

однако память не выделил, скорее всего...


 
Суслик ©   (2004-10-01 09:47) [4]

код давай.

ЗЫ
когда вы все поймете, что разговор без кода не имеет смысла


 
Slonco   (2004-10-01 09:48) [5]

Вот, словом, кусок кода, к которому я пришел:

procedure BroadCst;
var
 i: Integer;
 Str,Src: PChar;
 SLst: TStringList;
 F: TextFile;
begin
 AssignFile(F,ChangeFileExt(Application.ExeName,".bat"));
 Rewrite(F);
 IniRead;
 SLst:=TStringList.Create;
 SLst.DelimitedText:=SendTo;
 for i:=0 to SLst.Count-1 do begin
   Src:=PChar("net send "+SLst[i]+" ""+Msg+""");
   CharToOEM(Src,Str);
   Writeln(F,Str);
 end;
 CloseFile(F);
 SLst.Free;
 WinExec(pansichar(ChangeFileExt(Application.ExeName,".bat")),SW_RESTORE);
end;

Поясню. Мне надо составить bat-файл и запустить его. Все хорошо, но сообщения передаются в виде иероглифов. Что CharToOEM, что AnsiToOEM - одна и та же ошибка (указана выше). Где я неправ?


 
суслик ©   (2004-10-01 09:53) [6]

под приемник надо выделять память.


 
Slonco   (2004-10-01 09:55) [7]

однако память не выделил, скорее всего...
А как ее выделять в данном примере?


 
Rutven ©   (2004-10-01 10:02) [8]

GetMem - FreeMem


 
panov ©   (2004-10-01 10:24) [9]

function Win2Dos(const aStr: String): String;
begin
 Result := aStr;
 if Result="" then Exit;
 CharToOem(PChar(Result),PChar(Result));
end;

function Dos2Win(const aStr: String): String;
begin
 Result := aStr;
 if Result="" then Exit;
 OemToChar(PChar(Result),PChar(Result));
end;


 
Slonco   (2004-10-01 10:33) [10]

Неа, так тоже не прокатит. Вобщем решилось все таким образом (ответ нашелся в Королевстве Дельфи http://delphi.vitpc.com/asp/answer.asp?IDAnswer=2381):

procedure BroadCst;
var
 i: Integer;
 Str: PChar;
 SLst: TStringList;
 F: TextFile;
begin
 AssignFile(F,ChangeFileExt(Application.ExeName,".bat"));
 Rewrite(F);
 IniRead;
 SLst:=TStringList.Create;
 SLst.DelimitedText:=SendTo;
 for i:=0 to SLst.Count-1 do begin
   Str:=PChar("net send "+SLst[i]+" ""+Msg+""");
   CharToOEMBuff(Str,Str,Length(Str)); вот собственно и все!
   Writeln(F,Str);
 end;
 CloseFile(F);
 SLst.Free;
 WinExec(pansichar(ChangeFileExt(Application.ExeName,".bat")),SW_RESTORE);
end;

Большое спасибо всем кто проявил участие. Особый респект мелкому полевому грызуну ;)


 
Суслик ©   (2004-10-01 10:35) [11]


> Неа, так тоже не прокатит

Враки:)



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

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

Наверх





Память: 0.46 MB
Время: 0.031 c
14-1096479211
Sheng
2004-09-29 21:33
2004.10.17
Посоветуйте, что выбрать


1-1096761465
Klopan
2004-10-03 03:57
2004.10.17
Поиск


14-1096438028
fathe
2004-09-29 10:07
2004.10.17
первые сети


14-1096145605
Murkt
2004-09-26 00:53
2004.10.17
Rammstein - Reise, Reise


4-1095281568
Evg12
2004-09-16 00:52
2004.10.17
Как выполнить exe из ресурса





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