String içinden bir parçayı alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

String içinden bir parçayı alma

Mesaj gönderen ertline »

S.A. Arkadaşlar,
bir edit in içine "C:\program\db\data.fdb" bu veriyi yazdırıyorum bu verinin içinden "data" yazan kısmı nasıl alıpta başka bir edit içine yazdırabilirim.Bu "data" şirket ismini temsil ediyor yani farklı isimlerde olabilir.(örn:ayyildiz,sirket1,sirket2..)gibi .

C:\program\db\ "seçilecek string".fdb koyu yazıyı nasıl seçipte farklı bir editin içine yazdırabilirim.

Hayırlı çalışmalar..
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Az önce yazıyordum, ne oldu anlamadım. Neyse...

Copy ve Pos senin işini görür. Bunları bi ara.

Kod: Tümünü seç

path='C:\program\db\data.fdb';
txt:=Copy(Path,Pos('\',Path)+1,Pos('.',path)- Pos('\',Path)-1);
Gibi bişey olması lazım. Deneyemiyorum şu an.

Kolay Gelsin...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Şu fonksiyonu kullanabilirsin:

Kod: Tümünü seç

function ExtractFileNameWithoutExtension(const aPathAndFileName: string): string;
begin
  Result := ExtractFileName(aPathAndFileName);
  Result := System.Copy(Result, 1, Length(Result) - Length(ExtractFileExt(Result)));
end;
İyi çalışmalar.
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Hdayi hocam sonuc "Zytin_prog\db\data" bu şekilde döndü.
bana sadece data yazan yer lazım forumda aradım ama istediğim gibi malesef yok.Yardımcı olursanız sevinirim.

Hayırlı çalışmalar.
"Bilginin Doruğuna Hep Birlikte..."
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

Mesaj gönderen ylmz »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  arananstr,Str: String;
  mypos: Integer;
begin
  Str := 'C:\program\db\data.fdb';  //aranacak string
  mypos := Pos('\', Str);
  while (Pos('\', Str) > 0) do
  begin
    mypos := Pos('\', Str);
    Str[mypos] := 'x';
  end;
  arananstr := copy(Str, mypos + 1, length(str) - mypos - 4);
end;
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Hocam birden fazla "\" olduğu için yanlış dönmüş tabi. En son "\" ı bulman lazım. Ancak @Hakan Can'ın önerdiği yol güzel, hoşuma gitti. Bi onu dene.

Kolay Gelsin...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Teşekkürler arkadaşlar yılmaz beyin verdiği örnek çalışıyor.
Tam istediğim gibi.
Allah Razı Olsun..

Hayırlı çalışmalar
"Bilginin Doruğuna Hep Birlikte..."
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

@ertline benim verdiğim örnek çalışmadı mı?
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Bu tür parserler iyi analiz edilmediğinde kimi zaman hatalı sonuçlar döndürebilir.Delphi'de, verilen bir dosya isminin (pathiyle birlikte..) analizini sağlayan, yani cürücü harfini, klasör hiyerarşisini, dosya adını, uzantısını vs.hazır fonksiyonlar var..Şu an tam olarak syntaxlarını hatırlayamadım ama kullanılmasını salık veririm.

Kolay gele..
Cevapla