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
txt den stringgride veri aktarımı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: txt den stringgride veri aktarımı
merhabalar, alacağınız verilerin uzunluğu sabit mi?
UWESIS CORPORATION
Re: txt den stringgride veri aktarımı
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
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
Re: txt den stringgride veri aktarımı
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.
[/b]
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;
Re: txt den stringgride veri aktarımı
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
Re: txt den stringgride veri aktarımı
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
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
Re: txt den stringgride veri aktarımı
kbmmemtable ile gelen csv import eklentisi var onu kullan ayraç olarak boşluk kullan ve onu da gride ister bağla istersen kendin aktar.