File execution
Jeg har lavet et lille program, som skal kunne eksekvere nogle forskellige andre filer. Hertil bruger jeg WinExec. Da det fra starten ikke er bestemt hvilke filer der er tale om, sætter jeg en variabel af typen ”array of char” ind i stedet for en række char. Det ser ud som følger:Procedure TForm1.FileExecutionEks;
Var
Run Array[0..9] of Char;
Begin
“Fyld array procedure”
WinExec(Run,SW_SHOWNORMAL);
End;
I dette eksempel virker det hele som det skal! Men i mit program ved man ved kodningen ikke hvor langt arrayet skal være, jeg ønsker derfor at bruge et dynamisk array i stedet. Men når jeg gør dette kan den ikke kompilere projektet. Min kode ser ud som følger:
Procedure TForm1.FileExecutionMin;
Var
Run Array of Char;
strRun : String;
I : Integer;
Begin
//i min kode indlæses det fra en fil, men samme princip.
strRun := Form1.Edit1.Text;
setLength(Run,Length(strRun);
For I := 0 to (Length(strRun)-1) do
Begin
Run[I] := strRun[I+1];
End;
WinExec(Run,SW_SHOWNORMAL);
End;
Når jeg så prøver at kompilere dette skriver den at jeg ikke kan indsætte et array, hvor der skal indsættes en char. Men det har jeg jo lige gjort i det øverste eksempel. Hvilket i mine øjne kun kan betyde, at jeg ikke kan indsætte et dynamisk array. Det skal så lige siges, at der heller ikke kan indsættes en string. Jeg har så tænkt på at undgå det dynamiske array ved blot at lave et stort array, men mener at det er en dårlig løsning, da det vil bruge unødig hukommelse.
Hvad kan jeg gøre for at løse ovenstående??
Findes der en anden kommando til at eksekvere en fil, hvor man kan indsætte en string eller evt. dynamisk array?
VH Oergaard