DELPHI

mikszy5

Użytkownik
Dołączył
Sierpień 28, 2005
Posty
50
Witam mam takie problemy jak zrobić
1. JAk zrobić coś takiego że wczytuje ścierzke do pliku i jak zrobić aby program wybrał nazwe programu tą po ostatnim
2.jak zrobic aby tą nazwe wczytało w miejsce w pliku bat a dokładnie tu gdzie sa znaki XXXXXXX


Kod:
REM Plik  procedury programowania ATMega8



avrdude -p m8 -c bsd -e -U flash:w:XXXXXXX.hex

Potem go zapisało jako zaprogramuj.bat

I jak zrobić ż epo kliknięciu na button1 otwieram się jakis plik np zaprogramuj.bat


[you:77ad1d916c] z góry dziękuję ci za pomoc
 

rafal

Były Moderator
Dołączył
Marzec 30, 2005
Posty
392
Kod:
var

Plik: THandle;

Plik2: TextFile;

linia1,linia2,nazwa : string;

begin

nazwa:=ExtractFileName('lokalizacja badz jakas sciezka do pliku'); //z roszerzeniem

nazwa:=Copy(nazwa, 0, Pos('.',nazwa)-1); //bez rozszerzenia

linia1:='REM Plik  procedury programowania ATMega8';

linia2:='avrdude -p m8 -c bsd -e -U flash:w:'+nazwa+'.hex';

Plik:=FileCreate('zaprogramuj.bat');

FileClose(Plik);

AssignFile(Plik2,'zaprogramuj.bat');

  Reset(Plik2);

  Rewrite(Plik2);

  WriteLn(Plik2, linia1);

  WriteLn(Plik2, linia2);

  CloseFile(Plik2);

Odpalisz tak :
Kod:
uses ShellApi;

[...]

ShellExecute(Handle, 'open', 'zaprogramuj.bat', nil,nil, SW_NORMAL);
Kod:
 

Wojass

Użytkownik
Dołączył
Sierpień 22, 2003
Posty
347
mam uwage do tego kodziku,
Plik:THandle; jest nie potrzebne

nazwa:=Copy(nazwa, 0, Pos('.',nazwa)-1); a co sie stanie jak plik bedzie mial nazwe Taka.Sobie.Nazwa.Pliku.exe ? :wink:

jak mikszy5 nie potrafi zrobic tak prostej rzeczy to lepiej przyklad mu dac na chyba bardziej zrozumialym TStringList
 

Wojass

Użytkownik
Dołączył
Sierpień 22, 2003
Posty
347
<div class='quotetop'>CYTAT("mikszy5")</div>
niestety ale coś mi niewychodzi bo nie wstawia tej nazwy do zaprogramuj.bat[/b]

wstawiles tam wogole nazwe pliku gdzie mass ci wskazal ?
lub w Copy(nazwa, 0, Pos('.',nazwa)-1); sprobuj dac 1 zamiast 0 , chociaz tego nie jestem pewien ja zawsze robie przez 1 bo w stringu nie ma znaku 0`ego tylko jest 1 - pierwszy, ale mozliwe ze z 0 tez dziala tylko nie mam gdzie tego sprawdzic bo z pracy klikam
 

mikszy5

Użytkownik
Dołączył
Sierpień 28, 2005
Posty
50
Jak zmieniłem to 0 na 1 do już działa tylkko jeszce jak urzywam tej procedury do otwierania pliku pokazuje jakiś błąd i sie nic nie robi
 

rafal

Były Moderator
Dołączył
Marzec 30, 2005
Posty
392
a co sie stanie jak plik bedzie mial nazwe Taka.Sobie.Nazwa.Pliku.exe ?[/b]
w sumie nie pomyslalem o takim przypadku...
nom ale to tez nie problem, wystarczy dac aby skopiowano wszystko poza roszerzeniem :
Kod:
nazwa:=ExtractFileName(sciezka);

roz:=ExtractFileExt(sciezka);

nazwa:=Copy(nazwa,0, Pos(roz,nazwa)-1);
a 1 czy tam 0 nie robi roznicy bo tak czy siak dzialanie jest identyczne ,no ale jesli faktycznie przez to Ci nie dziala to widocznie ma byc 1
tylkko jeszce jak urzywam tej procedury do otwierania pliku pokazuje jakiś błąd i sie nic nie robi[/b]
jesli nie smiga Ci ShellExecute to skorzystaj z Winexec
a na przyszlosc pisz jaki blad Ci wyskakuje bo wkoncu nie kazdy ma przed oczyma Twoj komputer ;-)
 
Do góry Bottom