yardım lütfen text dosyadan bilgileri memo içine okumak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

yardım lütfen text dosyadan bilgileri memo içine okumak.

Mesaj gönderen Karamizrak »

Selamlar saygılar. Text dosya okuma ile ilgili bir kac soru olusmus forumda ama benim aradığım ise text dosyayı rich edite veya stringgrid e acmak stok kodunu richeditte veya stringgrid te arama yaptırmak ve bulunan stok kodunun devamındaki satış bilgilerini editler ile değiştirmek ve aynı text dosya üzerine kaydetmek. Bir satır yazıyorum ilgili text dosyadan. (Aşağıdaki kod kısmını bir notepad e olduğu gibi yapıştırıp bakarsanız sevinirim.)

Kod: Tümünü seç

 01  StokKodu                 Barkod                ÜrünAdı  ÜrünBirimi                                                             ÜrünAdı  ÜrünBirimi                                     04                              00              0              0                             01              1                              1           1           Satış1           Satış2              Satış3              Satış4              0              0              0              0              0              0              0 0 0 0 0 0 0 0 0 0 1023  02 0  00              0              0  0              10000021                    0     0              0     0              0              0              00              0              0              0              0              0              0              0              0              0     0              
notepad te bu satır tek bir satır olarak gorunuyor. Yukarda yazdığım gibi text dosyamdaki bu bilgiyi okuyacagım (ayrıca aradaki boşluklar önemli) boşlukları saydırarak ilgili yerlere edit ile bilgi değişikliği yapıp kaydetmek isitiyorum. Saygılar İyi Çalışmalar.
En son Karamizrak tarafından 19 Haz 2007 11:14 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Kod: Tümünü seç

    i: Integer;
    AStringList: TStringList;
    ALine: String;
begin
  AStringList := TStringList.Create;
  with AStringList do
  begin
    LoadFromFile(EdDosya.Text);
    StringGrid1.RowCount := Count +1; //Başık + satır sayısı
    for i := 0 to Pred(Count) do
    begin
      ALine := Strings[i];// ALine
      StringGrid1.Cells[0, i+1] := LeftStr(ALine, Pos(' ', ALine)-1); //Boşluk karakterinden öncesini al
      StringGrid1.Cells[1, i+1] := RightStr(ALine, Length(ALine)-Pos(' ', ALine)); //Sonrasını al
    end;//for
    Free;
  end;//with
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

Conari hocam valla iyi kodu yazmıssın tesekkur ederim ama bir acıklama yapsaydın cok iyi olurdu. kodu kullanmaya calıstıgım zaman RightStr Left Str satırlarını gosterıyor ve calısmıyor nasıl olacak biraz acıklama lutfen.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Usesa

Kod: Tümünü seç

StrUtils
eklemen lazım.

bu arada başlığı da değiştirirsen iyi olur.
Okuyun : Site Kuralları
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

ya hocam cok guzel yardımcı oldunuz tesekkur ederim ama cozemediğim bir yer var sizin vermiş olduğunuz blokla sadece il sutundaki bilgileri alıyor ben bu text içindeki sutunlardan bazılarını almak istiyorum yani 1. sutun 2. stun 16. sutun 17. sutun 18.sutun gibi bunu nasıl yaparız.
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

Arkadaslar bi yardımcı olunda su problemi halledelim. Lütfen.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Valla bu text analiz işlemi tamamen senin keyfine kalmış. Bunu sen tasarlayıp üzerinde sen çalışacaksın. Ama sana tavsiyem Memo gibi bileşenlerini bu gibi işlerde kullanırken ScrollBars özelliğini ssBoth yapman şart. Yoksa Lines özelliğinden eriştiğin satır numaraların karışır. Erişmek istediğin sütun numarası da senin tasarımın olacağı için bilgi okurken ve yazarken yapman gerekene basit bir örnek.
Mesela 3. sütun 14. karakter ile 17. karakter aralığında olsun (4 karakter)
ve 3. satıra erişelim. Sonra da değiştirelim.

Kod: Tümünü seç

var S,St:String; i:Integer;
begin
  St:=Memo1.Lines[2];
  S:=Copy(St,14,4);
  ShowMessage(S);
  S:=Copy(Edit1.Text,1,4);
  for i:=4 downto Length(S) do S:=S+' ';
  Delete(St,14,4);Insert(S,St,14);
  Memo1.Lines[2]:=St;
end;
gibi.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla