Замена части переменной другой переменной
Модератор: Модераторы
Замена части переменной другой переменной
Мне надо заменить часть переменной другой переменной. Подскажите, как это сделать.
Ниче не понятно, какая переменная ? На что заменить ?
Ism писал(а):Ниче не понятно, какая переменная ? На что заменить ?
Ну вот, есть строчка:
Код: Выделить всё
AProcess.CommandLine := 'cmdow /RUN /HID mpg123-static.exeПараметр, который идёт после mpg123-static.exe, записан в переменной. Что мне написать, чтобы параметр считывался с переменной?
Это же сверхэлементарно
AProcess.CommandLine := 'cmdow /RUN /HID mpg123-static.exe ' + MyVariable (которая String)
AProcess.CommandLine := 'cmdow /RUN /HID mpg123-static.exe ' + MyVariable (которая String)
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;Что делать?
Нужно проверить две вещи:
1) Что в MyFile записывается имя файла с полным путём. Проверить можно через
2) Если этот путь содержит пробелы, нужно брать параметр в двойные кавычки. Даже если путь не содержит пробелов, двойные кавычки не повредят.
1) Что в MyFile записывается имя файла с полным путём. Проверить можно через
Код: Выделить всё
ShowMessage(MyFile);2) Если этот путь содержит пробелы, нужно брать параметр в двойные кавычки. Даже если путь не содержит пробелов, двойные кавычки не повредят.
Код: Выделить всё
'mpg123-static.exe "' + MyFile + '"';xxZaharxx писал(а):procedure TForm1.Button1Click(Sender: TObject);
var
MyFile: string;
Здесь переменная локальная. После выполнения процедуры переменная исчезнет из памяти.
xxZaharxx писал(а):AProcess.CommandLine := 'mpg123-static.exe ' + MyFile;
Здесь используется глобальная переменная, которая, скорее всего еще не получила значения.
Почитайте сначала литературу про видимость переменных!
