Страница 1 из 1
Замена части переменной другой переменной
Добавлено: 12.06.2011 18:31:44
xxZaharxx
Мне надо заменить часть переменной другой переменной. Подскажите, как это сделать.
Re: Замена части переменной другой переменной
Добавлено: 12.06.2011 18:45:06
Ism
Ниче не понятно, какая переменная ? На что заменить ?
Re: Замена части переменной другой переменной
Добавлено: 12.06.2011 18:48:01
xxZaharxx
Ism писал(а):Ниче не понятно, какая переменная ? На что заменить ?
Ну вот, есть строчка:
Код: Выделить всё
AProcess.CommandLine := 'cmdow /RUN /HID mpg123-static.exe
Параметр, который идёт после mpg123-static.exe, записан в переменной. Что мне написать, чтобы параметр считывался с переменной?
Re: Замена части переменной другой переменной
Добавлено: 12.06.2011 18:51:38
Ism
Это же сверхэлементарно
AProcess.CommandLine := 'cmdow /RUN /HID mpg123-static.exe ' + MyVariable (которая String)
Re: Замена части переменной другой переменной
Добавлено: 13.06.2011 12:55:08
xxZaharxx
Ism писал(а):Это же сверхэлементарно
AProcess.CommandLine := 'cmdow /RUN /HID mpg123-static.exe ' + MyVariable (которая String)
Не получается. Программа тупо не видит параметр, хотя он уже обозначен.
Смотри кусок кода:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var
MyFile: string;
begin
if OpenDialog1.Execute then MyFile:=OpenDialog1.FileName;
end;
Он по идее должен обозначать имя файла (имя файла - параметр программы) как переменную MyFile. После выбора файла в форме и открытия, я запускаю, но программа включается БЕЗ ПАРАМЕТРА!
Кусок кода запуска программы:
Код: Выделить всё
procedure TForm1.Button3Click(Sender: TObject);
var
AProcess: TProcess;
begin
AProcess := TProcess.Create(nil);
AProcess.CommandLine := 'mpg123-static.exe ' + MyFile;
AProcess.Options := AProcess.Options + [poWaitOnExit];
AProcess.Execute;
AProcess.Free;
Что делать?
Re: Замена части переменной другой переменной
Добавлено: 13.06.2011 13:12:04
Odyssey
Нужно проверить две вещи:
1) Что в MyFile записывается имя файла с полным путём. Проверить можно через
2) Если этот путь содержит пробелы, нужно брать параметр в двойные кавычки. Даже если путь не содержит пробелов, двойные кавычки не повредят.
Re: Замена части переменной другой переменной
Добавлено: 13.06.2011 15:53:36
VirtUX
xxZaharxx писал(а):procedure TForm1.Button1Click(Sender: TObject);
var
MyFile: string;
Здесь переменная локальная. После выполнения процедуры переменная исчезнет из памяти.
xxZaharxx писал(а):AProcess.CommandLine := 'mpg123-static.exe ' + MyFile;
Здесь используется глобальная переменная, которая, скорее всего еще не получила значения.
Почитайте сначала литературу про видимость переменных!
