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

Вниз

Преобразование типов   Найти похожие ветки 

 
Хыыыы   (2004-08-18 09:18) [0]

как преобразовать Pchar в String?

Спасибо.


 
Семен Сорокин ©   (2004-08-18 09:19) [1]

StrPas


 
VMcL ©   (2004-08-18 10:03) [2]

>>Семен Сорокин ©  (18.08.04 09:19) [1]

Лучше просто String(...)


 
Семен Сорокин ©   (2004-08-18 10:08) [3]


> VMcL ©   (18.08.04 10:03) [2]

Вы правы, в Help"е написано:

This function is provided for backwards compatibility only. To convert a null terminated string to an AnsiString or native Delphi language string, use a typecast or an assignment.

а я все по старинке, лучше явным приведением.


 
Anatoly Podgoretsky ©   (2004-08-18 10:17) [4]

Еще проще
S := P


 
Хыыыы   (2004-08-18 10:26) [5]

а String в Pchar?


 
Рамиль ©   (2004-08-18 10:39) [6]

P := PChar(S);


 
Digitman ©   (2004-08-18 10:42) [7]


> Хыыыы   (18.08.04 10:26) [5]
> а String в Pchar?


var
 pc: PChar;
 s: string;

1.
pc := PChar(s); //без выделения памяти

2.
//с выделением памяти
pc := StrAlloc(Length(s) + 1);
StrCopy(pc, PChar(s));


 
VMcL ©   (2004-08-18 10:44) [8]

>>Anatoly Podgoretsky ©  (18.08.04 10:17) [4]

Совершенно верно. Но я, к примеру, в своих программах специально пишу явное преобразование в PChar->String, чтобы быть осторожнее, когда что-то исправляю.

>>Семен Сорокин ©  (18.08.04 10:08) [3]

И StrPas(...) и String(...) - явные приведения, просто StrPas вызывать смысла нет (по крайней мере в последних версиях Delphi), потому что StrPas всё равно содержит код такого вида:

function StrPas(P: PChar): String;
begin
 Result := P;  // или Result := String(P); - не помню точно, это не важно
end;


 
Хыыыы   (2004-08-18 13:41) [9]

Не работает......пишет "Несовместимые типы String и PAnsiChar"                                                            var msg:PChar;
....
msg:=IntToStr(Query1.RecordCount);
                                                       if Application.MessageBox("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?"                                                                                  "Удаление записи",                                                                                  MB_YESNO)=ID_YES then Table1.Delete


 
Хыыыы   (2004-08-18 13:43) [10]

сорри.........

var msg:Pchar;
....
msg:=IntToStr(Query1.RecordCount);
if Application.MessageBox("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?"                                                                                  "Удаление записи",                                                                                  MB_YESNO)=ID_YES then Table1.Delete


 
Хыыыы   (2004-08-18 13:46) [11]

плиз, сделайте предпросмотр сообщения перед отправкой....:(
var msg:Pchar;
....
msg:=IntToStr(Query1.RecordCount);
if Application.MessageBox("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?", "Удаление записи", MB_YESNO)=ID_YES then Table1.Delete

Извините за флейм


 
Digitman ©   (2004-08-18 13:46) [12]


> Хыыыы   (18.08.04 13:43) [10]


var msg:String;

msg:=IntToStr(Query1.RecordCount);
if Application.MessageBox(PChar("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?")                                                                                  "Удаление записи",                                                                                  MB_YESNO)=ID_YES then Table1.Delete


 
Хыыыы   (2004-08-18 14:00) [13]

> Digitman ©   (18.08.04 13:46) [12]

function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;


 
Digitman ©   (2004-08-18 14:03) [14]


> Хыыыы   (18.08.04 14:00) [13]


это ты к чему ?


 
Хыыыы   (2004-08-18 14:29) [15]

к тому что ошибка остаётся
"Несовместимые типы String и PAnsiChar", но теперь она не в

msg:=IntToStr(Query1.RecordCount);

а в
if Application.MessageBox("Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?", "Удаление записи", MB_YESNO)=ID_YES then Table1.Delete
а точнее в "Удаление этой записи повлечёт за собой удаление "+msg+" записей из таблицы Table1"#13#10#13#10"Удалить запись?"


 
Digitman ©   (2004-08-18 14:33) [16]


> Хыыыы   (18.08.04 14:29) [15]


глаза-то разуй !
посмотри внимательно на все отличия кода в [15] и [10] !


 
Думкин ©   (2004-08-18 14:35) [17]

> [15] Хыыыы   (18.08.04 14:29)

1. Записи такие дикие - вынеси например в resourcestring
2. Используй Format
3. PChar(String)
4. ??


 
Хыыыы   (2004-08-18 14:38) [18]

[15] и [10] это мои сообщения, сонтрол+це и контрол+вэ они одинаковы


 
Digitman ©   (2004-08-18 14:54) [19]


> Хыыыы   (18.08.04 14:38) [18]


о боже !)

ну так сложно сориентироваться что ли ?

ну не [10], а [12] ! ты вообще вникаешь в то что тебе адресовано ? неважно под каким номером поста ?


 
Хыыыы   (2004-08-18 15:06) [20]

> Думкин ©   (18.08.04 14:35) [17]
Спасибо, пЫво за мной


 
Думкин ©   (2004-08-18 15:09) [21]

> [20] Хыыыы   (18.08.04 15:06)

Мне то за что? Это к >  Digitman ©


 
NAlexey ©   (2004-08-18 15:12) [22]

He-he. Содержательная беседа.


 
app ©   (2004-08-18 15:50) [23]

Думкин ©   (18.08.04 15:09) [21]
А ему Пиво


 
app ©   (2004-08-18 15:50) [24]

Удалено модератором


 
Паскальные надписи ©   (2004-08-18 17:02) [25]


> app ©   (18.08.04 15:50) [24]
> Удалено модератором


А это что-то типа этого? :)
********** : удалено самоцензурой. В RO захотел?
:-)))))))


 
Anatoly Podgoretsky ©   (2004-08-18 17:21) [26]

Это было два Пиво, а ему хватит и одного.


 
Anatoly Podgoretsky ©   (2004-08-18 17:22) [27]

И как только рука поднялась. :-)



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

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

Наверх





Память: 0.51 MB
Время: 0.026 c
6-1088783472
Delphi5.01
2004-07-02 19:51
2004.09.05
spisok saitov s ...


1-1093113173
Alek_1
2004-08-21 22:32
2004.09.05
Запуск приложения с параметрами


1-1092850538
Реактор
2004-08-18 21:35
2004.09.05
Имитация клика мыши и нажатия кнопок.


3-1092231824
Bless
2004-08-11 17:43
2004.09.05
Как получить запись, соответсвующую максимальному значению поля


3-1092273424
Ted
2004-08-12 05:17
2004.09.05
База *.dbf





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