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

Вниз

Вопрос по работе с CharToOem. Странно(для меня)....   Найти похожие ветки 

 
oleon   (2002-12-28 12:45) [0]

var
TheString : PChar;
ProduceStr : string;
...................
...............
Почему вот так выдает ошибку?
TheString := PChar("ДОКУМЕНТ");
CharToOem(TheString, TheString);
А когда вот так пишу :
ProduceStr := "ИЗГ,"" + DMPrihod.qrUpload.FieldByName("ProducerID").AsString +
"",""+ DMPrihod.qrUpload.FieldByName("ProducerName").AsString +
"",""+ DMPrihod.qrUpload.FieldByName("CountryID").AsString + """;
TheString := PChar(ProduceStr);
CharToOem(TheString, TheString);

То ошибки нет...


 
Alexander Vasjuk   (2002-12-28 12:50) [1]

а ты не пытаешься случайно привести пустую строку?


 
oleon   (2002-12-28 12:55) [2]

Так нет же вот я пишу
TheString := PChar("ДОКУМЕНТ");
CharToOem(TheString, TheString);

А мне пишет Access Violation



 
RWolf   (2002-12-28 12:55) [3]

хм... вообще-то работает... проверил сейчас


 
oleon   (2002-12-28 12:59) [4]

Попробую тогда перезагрузиться!


 
Anatoly Podgoretsky   (2002-12-28 13:01) [5]

Тем что ты создаешь константу. "ДОКУМЕНТ" размещается в памяти помеченной как readonly
Во втором случае, указывается указатель на строку в нормальной памяти и указатель на нее помещается в TheString



 
oleon   (2002-12-28 13:10) [6]

Подскажите пожалуйста как тогда нужно написать чтобы заработало?


 
Anatoly Podgoretsky   (2002-12-28 13:18) [7]

Твой вариант 2 рабочий


 
oleon   (2002-12-28 13:23) [8]

Так мне нужно константу обработать...
Мне как-то нужно константу разместить в памяти не помеченной как ReadOnly... Вот я и спрашиваю как это покороче записать... Спасибо.


 
Anatoly Podgoretsky   (2002-12-28 13:28) [9]

Сохраняй ее в String
var
TheString : string;

TheString := "ДОКУМЕНТ";
CharToOem(PChar(TheString), PChar(TheString));


 
oleon   (2002-12-28 14:02) [10]

Все равно у меня на Win2000 Prof не работает,
а на Win98 ошибки нет, но не конвертирует...

ладно попробую извращнуться по другому


 
RWolf   (2002-12-28 14:08) [11]

цитата из хелпа:

If the CharToOem function is being used as an ANSI function, the string can be translated in place by setting the lpszDst parameter to the same address as the lpszSrc parameter. This cannot be done if CharToOem is being used as a wide-character function.

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


src:=pchar("qwerty");
dst:=stralloc(length(src));
CharToOem(src,dst);
... юзаем результат ...
strdispose(dst);



 
RWolf   (2002-12-28 14:11) [12]

поправочка:
dst:=stralloc(length(src)+1);


 
oleon   (2002-12-28 14:39) [13]

Спасибо всем... узнал много нового для себя...

To RWolf
все заработало... спасибо!



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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
14-37357
RV
2002-12-24 16:23
2003.01.13
Напомнили тут...Игры массовкой. Какие знаете?


4-37457
GROL
2002-11-25 12:23
2003.01.13
Как определить экранные координаты Menu?


1-37076
Gamar
2003-01-03 12:32
2003.01.13
Имя версии через директивы


1-37067
Dmitry Strigevitch
2002-12-28 04:02
2003.01.13
...splitter ы сбиваются в одну кучу...


14-37347
herosofnn
2002-12-24 14:32
2003.01.13
IP





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