Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2012, 20:51   #1
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию Проблемы с переводом из string в pansichar

Берём:
Код:
ansi:=pansichar('"E:\Program Files\WinRAR\WinRAR.exe" a -r "C:\base---02.07.2012.rar" "C:\BASE"');
Всё отлично, всё как надо остаётся, ничего не меняется, а если так:
Код:
string:='"E:\Program Files\WinRAR\WinRAR.exe" a -r "C:\base---02.07.2012.rar" "C:\BASE"';
ansi:=pansichar(string);
то на выходе получаем просто - *

Тобишь мне нужно просто перевести строку в пансичар, иначе через winexec не послать винрару команду на архивацию. бьюсь уже часа 2 без результата.
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 02.07.2012, 21:22   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если юникод Делфи то конвертить надо сначало в AnsiString потом уже в PAnsiChar.

да и WinExec устарел.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.07.2012, 17:19   #3
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
если юникод Делфи то конвертить надо сначало в AnsiString потом уже в PAnsiChar.
Да действительно, если не сложно объясните данный принцип, почему так, почему нельзя сразу в pansichar?

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
да и WinExec устарел.
Опять же, хотелось бы услышать, какая есть алтернатива, и почему она лучше.
Это из оперы - "Критикуя - предлогай")) Заранее спасибо.
C YBA}|{EH|/|EM Tip.the.besT

Последний раз редактировалось Tip.the.besT; 03.07.2012 в 17:21.
Tip.the.besT вне форума Ответить с цитированием
Старый 03.07.2012, 17:32   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это из оперы - "Критикуя - предлогай")
ShellExecute или нетленный CreateProcess
Цитата:
и почему она лучше.
Спроси у микрософта:
Цитата:
This function is provided for compatibility with earlier versions of Windows. For Win32-based applications, use the CreateProcess function.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2012, 17:34   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Да действительно, если не сложно объясните данный принцип, почему так, почему нельзя сразу в pansichar?
Анси символы занимают по одному байту, Юникод в винде занимает строго по 2 байта на символ.
соответственно нужно сначало перевести строку в анси, а уже потом брать указатель на нее.
Цитата:
Опять же, хотелось бы услышать, какая есть алтернатива, и почему она лучше.
Это из оперы - "Критикуя - предлогай")) Заранее спасибо.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Цитата:
Note This function is provided only for compatibility with 16-bit Windows.
альтернатива это CreateProcess или ShellExecute.
чуть сложнее правда, но зато современные(а с первой еще можно вообще следить за завершением процесса)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
String и PAnsiChar nls Общие вопросы Delphi 12 27.12.2011 23:50
Конвертация String в PAnsiChar в Delphi vandrouny Помощь студентам 5 28.10.2010 22:27
из String в Pansichar пауэрлифтинг Общие вопросы Delphi 10 05.02.2010 02:40
как из string перевести в PAnsiChar Sparky Общие вопросы Delphi 3 29.08.2009 14:12
pansichar to string Toxa Общие вопросы Delphi 16 31.05.2007 13:40