txt den stringgride veri aktarımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kagakadir
Üye
Mesajlar: 32
Kayıt: 11 Eki 2010 11:52

txt den stringgride veri aktarımı

Mesaj gönderen kagakadir »

arkadaşlar txt dosyası şu şekilde

1111 2222 33333 44444
2222 3333 55555 77777
4444 4444 44444 44444


bu şekilde 60 tane satır var

bu satırlardaki grupları string gride nasıl bir döngü ile atabilirim ?

yardımcı olabilirseniz çok sevinirim

arkadaşlar acemi olduğu muda belirtiyim
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: txt den stringgride veri aktarımı

Mesaj gönderen CiTiZEN »

merhabalar, alacağınız verilerin uzunluğu sabit mi?
UWESIS CORPORATION
kagakadir
Üye
Mesajlar: 32
Kayıt: 11 Eki 2010 11:52

Re: txt den stringgride veri aktarımı

Mesaj gönderen kagakadir »

evet hocam sabit
yanlış anlaşılma olmasın tekrar anlatayım

her satırdaki grupların karakter sayısı sabit ve hep aynı sıradalar

ama satır sayısı değişken bazen 60 oluyor bazen 120
satırdaki her grubu ayrı hücreye yerleştirmek en son hücrede de diğerlerinin çarpımını göstermek istiyorum
Kullanıcı avatarı
burak_489
Üye
Mesajlar: 31
Kayıt: 20 Ara 2010 09:20

Re: txt den stringgride veri aktarımı

Mesaj gönderen burak_489 »

eğer boşluklar sabit ise yani boşluklar sadece sayılar arasındaysa bu işine yarayabilir.

bende bahsettiğin formatta dosya olmadığından kendim türettim.
StringGrid1.Cells ile hücreye atarken +1 kullandım soldan ve üstten hücre kazanmak için.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
Var
  dosya, satir: TStringList;
  M, M2 : Integer;
begin
  dosya := TStringList.Create;
  dosya.LoadFromFile('d:\ilgilidosya2.txt');
  StringGrid1.RowCount := dosya.Count;
  satir := TStringList.Create;
  For M := 0 To dosya.Count - 1 Do
  Begin
    satir.Clear;
    satir.Text := StringReplace( dosya.Strings[M], ' ', #13,
     [rfReplaceAll,rfIgnoreCase]);
    If StringGrid1.ColCount < satir.Count Then
    Begin
      StringGrid1.ColCount := satir.Count;
    End;

    For M2 := 0 To satir.Count - 1 Do
    Begin
      StringGrid1.Cells[ M2 + 1, M + 1 ] := satir.Strings[M2];
    End;

  End;
  satir.Free;
  dosya.Free;


end;

procedure TForm1.Button2Click(Sender: TObject);
Var
  kamil : TStringList;
  M : Integer;
begin
  kamil := TStringList.Create;
  //Randomize;
  Gauge1.MaxValue := 1000;
  For M := 0 To 1000 Do
  Begin
    Gauge1.Progress := M;

    kamil.Add( IntToStr(RandomRange(1000, 9999)) + ' ' +
               IntToStr(RandomRange(1000, 9999)) + ' ' +
               IntToStr(RandomRange(10000, 99999)) + ' ' +
               IntToStr(RandomRange(10000, 99999)));
  End;
  kamil.SaveToFile('d:\ilgilidosya2.txt');
  kamil.Free;
end;
[/b]
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: txt den stringgride veri aktarımı

Mesaj gönderen CiTiZEN »

text parçalama fonksiyonları hakkında bilgi sahibi olmak gerekir:

Kod: Tümünü seç

var
  TextF:TextFile;
  ts,s:string;
  i,i1:integer;
begin
  AssignFile(TextF,'belge.txt');
  Reset(TextF);
  for i := 1 to 4 do
    begin
     StringGrid1.Cells[i,0]:='Veri'+IntToStr(i);
    end;
     i:=0;
  while not Eof(TextF) do
   begin
     ReadLn(TextF, ts);
     ts:=AnsiReplaceText(ts,' ','');
     s:='';
     Inc(i,1);
     for i1 := 0 to 4 do
     begin
      s:=Copy(ts,1,4);
      Delete(ts,1,4);
      StringGrid1.Cells[i1+1,i]:=s;
     end;
   end;
UWESIS CORPORATION
kagakadir
Üye
Mesajlar: 32
Kayıt: 11 Eki 2010 11:52

Re: txt den stringgride veri aktarımı

Mesaj gönderen kagakadir »

Hocam öncelikle ilginiz için çok teşekkür ederim
belki acemiliğimden ama
[DCC Error] Unit1.pas(70): E2003 Undeclared identifier: 'Gauge1'
bunu veriyor anlayamadım
button 1 çalışıyor satırın en başından almaya başlıyor bilgileri belki ben eksik anlatmış olabilirim

txt de satırlar şu şekilde


abc 4444 cbdr 4567 bklhututntnrfıf 12 14
cde 2345 kjnr 1234 bklhututntnrfıf 12 15

ben bunların içinden benim işime yarayanları alıp işlem yapmak istiyorum
string grid şu şekilde olucak yani

4444 4567 12 14 168
2345 1234 12 15 180


(168 ve 180 kendinden önceki iki grubun çarpımı)
baştan eksik bilgi verip uğraştırdıysam çok özür dilerim
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: txt den stringgride veri aktarımı

Mesaj gönderen orhancc »

kbmmemtable ile gelen csv import eklentisi var onu kullan ayraç olarak boşluk kullan ve onu da gride ister bağla istersen kendin aktar.
Cevapla