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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2010, 17:09   #1
SL1CK
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 84
По умолчанию Преобразование Char string

Можно ли как то преобразовать тип Char в String или наоборот??
SL1CK вне форума Ответить с цитированием
Старый 11.01.2010, 17:13   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

string:=char;
char:=string[1];
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2010, 21:39   #3
SL1CK
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 84
По умолчанию

спасибо но не помогает..
вот что хочу сделать:

var bufs: array[0..255] of char;
begin
GetSystemDirectory(bufs, sizeof(bufs));
WinExec('cd ' + pchar(strpas(bufs)), SW_SHOWNORMAL);

постоянно выбивает ошибку
Incompatible types: 'Array' and 'PAnsiChar'

как можно решить данную проблемму??
SL1CK вне форума Ответить с цитированием
Старый 11.01.2010, 21:46   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

WinExec() давно уже устарела и не рекомендуется к использованию, оставлена только в целях совместимости с 16-ти разрядными приложениями.

Используйте ShellExecute:

Зависимости: Требуется модуль ShellApi
Примеры:
Код:
ShellExecute(Handle,nil,'notepad.exe',nil,nil,SW_SHOWNORMAL);
Последний параметр управляет видимостью и активностью запущенной программы на экране.
Через ShellExecute() также можно запускать ассоциированную с тем или иным файлом программу:
Код:
ShellExecute(Handle,'open','pd.doc',nil,nil,SW_SHOWNORMAL);
- запустит MS Word (или другую программу, ассоциироанную для запуска *.doc файлов) и загрузит в него файл pd.doc.

Последний раз редактировалось mihali4; 11.01.2010 в 22:00.
mihali4 вне форума Ответить с цитированием
Старый 11.01.2010, 21:58   #5
SL1CK
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 84
По умолчанию

делаю с помощью ShellExecute

GetSystemDirectory(bufs, sizeof(bufs));
ShellExecute (handle, nil, 'cd ' + pchar(strpas(bufs)), nil, nil, SW_RESTORE);

вылетает та-же ошибка
Incompatible types: 'Array' and 'PAnsiChar'
SL1CK вне форума Ответить с цитированием
Старый 11.01.2010, 22:08   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ваш старый вариант по шажочкам
Код:
var 
  a : Array[0..MAX_PATH] of char;
  tmp: string;
begin 
  GetWindowsDirectory(a, sizeof(a));
  ShowMessage(StrPas(a));
  tmp:=String(a);
  WinExec(PChar('cd ' + tmp), SW_SHOWNORMAL);
end;
Только вы мне откройте великую тайну - а что вы запускать-то собрались?
Там ведь просто указан каталог винды...
Я смоделировал - молчит, как рыба...
mihali4 вне форума Ответить с цитированием
Старый 11.01.2010, 22:12   #7
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Можно и вот так вроде, у меня открывает System32 :
Код:
var
  bufs: array[0..255] of char;
begin
GetSystemDirectory(bufs, sizeof(bufs));
ShellExecute(handle, nil,bufs, nil, nil, SW_RESTORE);
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 11.01.2010, 22:16   #8
SL1CK
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 84
По умолчанию

спасибо, теперь работает!

Цитата:
Только вы мне откройте великую тайну - а что вы запускать-то собрались?
Там ведь просто указан каталог винды...
Я смоделировал - молчит, как рыба...
нужно хранить временные файлы программы в папке \temp..
молчит потому-что там команда cd %windir% (типа перейти в данный каталог)

Цитата:
Можно и вот так вроде, у меня открывает System32 :
Код:


var
bufs: array[0..255] of char;
begin
GetSystemDirectory(bufs, sizeof(bufs));
ShellExecute(handle, nil,bufs, nil, nil, SW_RESTORE);
да так работает,
но мне нужно примерно такое
Код:
ShellExecute(handle, nil,'copy settings.ini ' + bufs +'\settings.ini', nil, nil, SW_RESTORE);

Последний раз редактировалось SL1CK; 11.01.2010 в 22:22.
SL1CK вне форума Ответить с цитированием
Старый 11.01.2010, 22:35   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну так и делайте просто копирование файла...
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из string в char Xcopy Общие вопросы Delphi 2 10.07.2009 17:17
String и char Julinja Паскаль, Turbo Pascal, PascalABC.NET 9 03.01.2009 12:10
Преобразование TCHAR в CHAR. Игорь007 Общие вопросы C/C++ 2 13.10.2008 21:50
из string в char ShenDy Общие вопросы C/C++ 1 14.04.2008 11:01
char->string eds Общие вопросы .NET 1 28.11.2007 17:22