![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
Есть процедура: Код:
procedure Tfm_main.N13Click(Sender: TObject); var a: string; b: string; c: string; begin a:=fm_main.MyQ.FieldByName('remote_switch_id').AsString; b:='10.100.10.'; c:= b+a; showmessage(c); WinExec (('ping ' + 'c'), SW_SHOW); //WinExec (('ping ' + '10.100.10.15'), SW_SHOW); end; showmessage возвращает - 10.100.10.15 Как заставить работать команду пинг с переменной c Спасибо. |
#2
|
||||
|
||||
![]() Код:
procedure Tfm_main.N13Click(Sender: TObject); var a: string; begin a := fm_main.MyQ.FieldByName('remote_switch_id').AsString; WinExec (('ping 10.100.10.' + a), SW_SHOW); end; Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#3
|
|||
|
|||
![]() Цитата:
[DCC Error] Unit1.pas(191): E2010 Incompatible types: 'string' and 'PAnsiChar' |
#4
|
||||
|
||||
![]() Ну как дети малые, чесное слово.
Код:
procedure Tfm_main.N13Click(Sender: TObject); var a: string; b: string; c: string; begin a:=fm_main.MyQ.FieldByName('remote_switch_id').AsString; b:='10.100.10.'; c:= b+a; showmessage(c); WinExec (('ping ' + PChar(c)), SW_SHOW); //WinExec (('ping ' + '10.100.10.15'), SW_SHOW); end; Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
|||
|
|||
![]() Цитата:
Выдаёт туже ошибку, что и выше указана. Компилятор - D2009 |
#6
|
||||
|
||||
![]() Код:
WinExec (('ping ' + PAnsiChar(c)), SW_SHOW); Пишу программы за еду. __________________ |
#7
|
|||
|
|||
![]() Цитата:
[DCC Warning] Unit1.pas(184): W1044 Suspicious typecast of string to PAnsiChar [DCC Error] Unit1.pas(184): E2010 Incompatible types: 'string' and 'PAnsiChar' |
#8
|
||||
|
||||
![]() oops)
Код:
WinExec (PAnsiChar('ping ' + c), SW_SHOW); WinExec (PChar('ping ' + c), SW_SHOW); Пишу программы за еду. __________________ |
#9
|
|||
|
|||
![]() Цитата:
Спасибо за проявленный интерес, но немного опишу что нужно. Есть набор данных, есть таблица с идентификаторами 1,2,3...254 (id оборудования) id соотвествует ip адресу 10.100.10.1, 10.100.10.102, 10.100.10.3...10.100.10.254. Хотелось бы вставая на определённую строку вызывать команду пинг передавая в неё параметры. С этим WinExec (PAnsiChar('ping ' + c), SW_SHOW); - вообще ничего не происходит С этим WinExec (PChar('ping ' + c), SW_SHOW); ошибка -- [DCC Error] Unit1.pas(195): E2010 Incompatible types: 'Char' and 'AnsiChar' Последний раз редактировалось gebs, 05.03.2011 в 15:48. |
#10
|
||||
|
||||
![]() вот прямо сейчас проверил:
Код:
var ip: String; s: String; begin ip:='127.0.0.1'; // var s:='ping '+ip; WinExec(PAnsiChar(s), SW_SHOW); end; Пишу программы за еду. __________________ |
#11
|
|||
|
|||
![]() Цитата:
Изменил на : Код:
procedure Tfm_main.N13Click(Sender: TObject); var ip: String; s: String; begin ip:=fm_main.MyQ.FieldByName('remote_switch_id').AsString;; // var s:='ping '+' 10.100.10.' +ip; showmessage(s); WinExec(PAnsiChar(s), SW_SHOW); end; Мессага нормальная, а дальше командная строка не запуская, просто тишина. |
#12
|
|||
|
|||
![]() У меня кстати сия процедура не работает:
Код:
var ip: String; s: String; begin ip:='127.0.0.1'; // var s:='ping '+ip; WinExec(PAnsiChar(s), SW_SHOW); end; [DCC Warning] Unit1.pas(193): W1044 Suspicious typecast of string to PAnsiChar Delphi 2009 |
#13
|
||||
|
||||
![]() Попробуй вместо String пользовать AnsiString, ну или вместо PAnsiChar использовать PChar .
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#14
|
|||
|
|||
![]() Благодарю всех. Заработало вот так:
Код:
procedure Tfm_main.N13Click(Sender: TObject); var ip: String; s: String; begin ip:=fm_main.MyQ.FieldByName('remote_switch_id').AsString; // var s:='ping '+' 10.100.10.' +ip; //showmessage(s); WinExec(PAnsiChar( AnsiString(s)), SW_SHOW); end; Видимо это связанос моим незнанием и с d2009 |
#15
|
||||
|
||||
![]() Юзай лучше WinExecA. У меня подозрение, что ты пытался передать анси строку функции принимающей строку в юникоде.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |