İyi Akşamlar arkadaşlar
Belki daha pratik yolları vardır ama ben biraz basit yoldan şu şekilde çözümümü buldum.
Kod: Tümünü seç
procedure TForm1.btnTestClick(Sender: TObject);
var
metin,aranan, oncesi, sonrasi:AnsiString;
i, Kacincideger1, Kacincideger2,Kacincideger3,Kacincideger4, Kacincideger5:Integer;
begin
metin:='199 KAP 22 KG 33 ADET 44 VARİL 55 BİDON';
aranan:='KAP';
Kacincideger1:=AnsiPos(aranan,metin); //Aranan kaçıncı karakter
//ShowMessage(IntToStr(Kacincideger1));
oncesi:=AnsiLeftStr(metin,Kacincideger1-1); //Aranandan öncesi
sonrasi:=AnsiMidStr(metin,Kacincideger1+1+Length(aranan),Length(metin)+Kacincideger1); // x karakterden sonraki x karakteri al
//Aranandan sonrasını al
Mmo1.Lines.Add(aranan +' = ' + oncesi);
aranan:='KG';
Kacincideger2:=AnsiPos(aranan,sonrasi); //Aranan kaçıncı karakter (Kalan sonrasından işlem yapılıyor)
oncesi:=AnsiLeftStr(sonrasi,Kacincideger2-1); //Aranandan öncesi
sonrasi:=AnsiMidStr(sonrasi,Kacincideger2+1+Length(aranan),Length(sonrasi)+Kacincideger2); // x karakterden sonraki x karakter
Mmo1.Lines.Add(aranan +' = ' + oncesi);
aranan:='ADET';
Kacincideger3:=AnsiPos(aranan,sonrasi); //Aranan kaçıncı karakter (Kalan sonrasından işlem yapılıyor)
oncesi:=AnsiLeftStr(sonrasi,Kacincideger3-1); //Aranandan öncesi
sonrasi:=AnsiMidStr(sonrasi,Kacincideger3+1+Length(aranan),Length(sonrasi)+Kacincideger3); // x karakterden sonraki x karakter
Mmo1.Lines.Add(aranan +' = ' + oncesi);
aranan:='VARİL';
Kacincideger4:=AnsiPos(aranan,sonrasi); //Aranan kaçıncı karakter (Kalan sonrasından işlem yapılıyor)
oncesi:=AnsiLeftStr(sonrasi,Kacincideger4-1); //Aranandan öncesi
sonrasi:=AnsiMidStr(sonrasi,Kacincideger4+1+Length(aranan),Length(sonrasi)+Kacincideger4); // x karakterden sonraki x karakter
Mmo1.Lines.Add(aranan +' = ' + oncesi);
aranan:='BİDON';
Kacincideger5:=AnsiPos(aranan,sonrasi); //Boşluk kaçıncı karakter (Kalan sonrasından işlem yapılıyor)
oncesi:=AnsiLeftStr(sonrasi,Kacincideger5-1); //Aranandan öncesi
sonrasi:=AnsiMidStr(sonrasi,Kacincideger5+1+Length(aranan),Length(sonrasi)+Kacincideger5); // x. karakterden sonraki x karakter
Mmo1.Lines.Add(aranan +' = ' + oncesi);
end;