path bulma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
path bulma
programın çalıştığı klasörün bi üst klasöründeki başka bir klasörü tam yoluyla nasıl alabilir.
Örnek:
ben "...yol\program\program.exe" deyim fakat "...yol\rapor\a.rpr" un tam yolunu öğrenmek istiyorum.
"...yol" u öğrensem yeter bana.
Örnek:
ben "...yol\program\program.exe" deyim fakat "...yol\rapor\a.rpr" un tam yolunu öğrenmek istiyorum.
"...yol" u öğrensem yeter bana.
ALi ÇELİK
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Exenin bulunduğu klasör;
open dialog ya da harici bir şekilde güncel klasör değişmesinden ektilenmeden bulunabilir sanırım.
Kod: Tümünü seç
ExtractFilePath (Application.ExeName);
bi üst lütfen :)
teşekkür ederim
Fakat, ben exe min çalıştığı mevcut klaasör yerine bi üst klasörün içindeki başka klasöre ulaşmak istiyorum. Path deki fazlalığı nasıl keserim?
Saygılar,
Fakat, ben exe min çalıştığı mevcut klaasör yerine bi üst klasörün içindeki başka klasöre ulaşmak istiyorum. Path deki fazlalığı nasıl keserim?
Saygılar,
ALi ÇELİK
Biraz dallama bi yolla oldu ama ilk aklıma bu geldi
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var pathilkhal,pathsonhal,ters:string; i:integer;
begin
pathilkhal:=ExtractFilePath(Application.ExeName);
ShowMessage(pathilkhal);
for i:=1 to length(pathilkhal) do
begin
ters:=copy(pathilkhal,i,1)+ters;
next;
end;
delete(ters,1,1);
delete(ters,1,pos('\',ters));
for i:=1 to length(ters) do
begin
pathsonhal:=copy(ters,i,1)+pathsonhal;
next;
end;
ShowMessage(pathsonhal);
end;
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
Şöyle bir yöntem de var:
Mesela program C:\DENEME\PROGRAM klasöründe çalışıyor
siz C:\DENEME\RAPOR klasörüne ulaşmak istiyorsunuz:
o zaman
C:\DENEME\PROGRAM\..\RAPOR diye tanımlayarak ulaşabilirsiniz bu klasöre, string parçalama ile uğraşmanıza gerek kalmaz. Çünkü:
..\ (Parent directory, Bir üst klasör), .\ ise (Current Directory, Halihazırdaki klasör) ile eş değer anlamdadır.
Mesela program C:\DENEME\PROGRAM klasöründe çalışıyor
siz C:\DENEME\RAPOR klasörüne ulaşmak istiyorsunuz:
o zaman
C:\DENEME\PROGRAM\..\RAPOR diye tanımlayarak ulaşabilirsiniz bu klasöre, string parçalama ile uğraşmanıza gerek kalmaz. Çünkü:
..\ (Parent directory, Bir üst klasör), .\ ise (Current Directory, Halihazırdaki klasör) ile eş değer anlamdadır.
Merhaba,
Mucar arkadaşımızın örneğini şu şekilde de yapabiliriz. ReverseString için uses kısmına StrUtils satırını eklemeyi unutmayın.
İyi çalışmalar.
Mucar arkadaşımızın örneğini şu şekilde de yapabiliriz. ReverseString için uses kısmına StrUtils satırını eklemeyi unutmayın.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
begin
a:=extractfilepath( application.exename); // C:\Program Files\Borland\Delphi7\Bin\ şekline gelir.
showmessage (a) ;
delete(a,length(a),1); // C:\Program Files\Borland\Delphi7\Bin şekline gelir.
a:=reversestring(a); // niB\7ihpleD\dnalroB\seliF margorP\:C şekline gelir.
delete(a,1,pos('\',a)); // 7ihpleD\dnalroB\seliF margorP\:C şekline gelir.
a:=reversestring(a); // C:\Program Files\Borland\Delphi7 şekline gelir.
a:=a+'\rapor\a.rpr'; // C:\Program Files\Borland\Delphi7\rapor\a.rpr şekline gelir.
end;
Kod: Tümünü seç
filename1 := IncludeTrailingBackslash(ExtractFilePath(Application.ExeName))+DEFAULTBACKUPDIR+GetZipFilename;
.-.-.-.-.-.-.-. ^_^
Merhaba,
Bugün ipuçlarında gördüğüm bir fonksiyon ile bunu daha zahmetsiz elde edebiliyoruz.
Yukarıdaki verdiğim örneği aşağıdaki gibi de yapabiliriz.
ExcludeTrailingPathDelimiter fonksiyonu en sondaki slash karakterini siliyor.
Kolay gelsin.
Bugün ipuçlarında gördüğüm bir fonksiyon ile bunu daha zahmetsiz elde edebiliyoruz.
Yukarıdaki verdiğim örneği aşağıdaki gibi de yapabiliriz.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
begin
a:=extractfilepath( application.exename); // C:\Program Files\Borland\Delphi7\Bin\ şekline gelir.
a:=excludetrailingpathdelimiter(a); // C:\Program Files\Borland\Delphi7\Bin şekline gelir.
a:=ExtractFilePath(a); // C:\Program Files\Borland\Delphi7\ şekline gelir.
a:=a+'rapor\a.rpr'; //C:\Program Files\Borland\Delphi7\rapor\a.rpr şekline gelir.
showmessage (a) ;
end;
Kolay gelsin.