iyi günler kolay gelsin.
txt uzantılı bir dosyanın içindeki verileri satır satır okumak istiyorum veriler (;) ile ayrılmış durumda ben bu verileri analiz edeceğim
veriler satırda aşağıdaki gibi sıralı her satırı ayrı okuyup her satırdaki veriyide tek tek almam gerekiyor
2542;2549;2558;2568;2579;2595;2604;2617;2663;0;0;0;0;
txt den satır satır veri okuma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: txt den satır satır veri okuma
https://stackoverflow.com/questions/135 ... st-and-csv
bu linki inceleyebilirsiniz.
bu linki inceleyebilirsiniz.
Mücadele güzelleştirir!
Re: txt den satır satır veri okuma
linki inceledim teşekkür ederim.
linkteki örnekte TStringDynArray değişken tipini bende kabul etmiyor. araştırdım array of string tipinde değişken ile aynı imiş. bu konuda yardımcı olabilirmisiniz?
linkteki örnekte TStringDynArray değişken tipini bende kabul etmiyor. araştırdım array of string tipinde değişken ile aynı imiş. bu konuda yardımcı olabilirmisiniz?
Re: txt den satır satır veri okuma
Merhaba,duraumsa yazdı: ↑02 Haz 2018 11:15 iyi günler kolay gelsin.
txt uzantılı bir dosyanın içindeki verileri satır satır okumak istiyorum veriler (;) ile ayrılmış durumda ben bu verileri analiz edeceğim
veriler satırda aşağıdaki gibi sıralı her satırı ayrı okuyup her satırdaki veriyide tek tek almam gerekiyor
2542;2549;2558;2568;2579;2595;2604;2617;2663;0;0;0;0;
Birçok farklı şekilde yapmak istediğinizi gerçekleştirebilirsiniz. Aşağıdaki yöntem örnek olması açısından verilmiştir.
Kod: Tümünü seç
uses
System.IOUtils;
function ReadTextFile(const FileName: string; Lines: TStrings): Boolean;
var
F: TextFile;
ALine: string;
begin
if not TFile.Exists(FileName) then Exit(False);
AssignFile(F, FileName);
{$I-}
Reset(F);
{$I+}
if IOResult <> 0 then Exit(False);
{$I-}
try
Lines.Clear();
while not Eof(F) do
begin
ReadLn(F, ALine);
if IOResult <> 0 then Exit(False);
if ALine <> EmptyStr then Lines.Add(ALine);
end;
finally
CloseFile(F);
{$I+}
end;
Result := True;
end;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
Satirlar: TStringList;
begin
Log.Clear();
Satirlar := TStringList.Create();
try
if ReadTextFile(Edit1.Text, Satirlar) then
begin
ShowMessage('Dosya okuması tamam. Okunan satır: ' + Satirlar.Count.ToString());
end;
finally
Satirlar.Free();
end;
end;
Kod: Tümünü seç
function TotalColumns(const Line: string; const Delimiter: Char = ';'): Word;
var
Columns: TStringList;
begin
Columns := TStringList.Create();
try
Columns.StrictDelimiter := True;
Columns.Delimiter := Delimiter; // dosya içindeki kolon ayırıcı karakter
Columns.DelimitedText := Line;
Result := Columns.Count;
finally
Columns.Free();
end;
end;
function GetColumn(const Line: string; const Index: Word; const Delimiter: Char = ';'): string;
var
Columns: TStringList;
begin
Columns := TStringList.Create();
try
Columns.StrictDelimiter := True;
Columns.Delimiter := Delimiter; // dosya içindeki kolon ayırıcı karakter
Columns.DelimitedText := Line;
if Pred(Columns.Count) >= Index then Exit(Columns[Index]);
finally
Columns.Free();
end;
Result := EmptyStr;
end;
Kod: Tümünü seç
procedure LogLines(const Lines: TStrings; Log: TStrings);
const
INDENT = Chr(VK_TAB);
var
I: Integer;
I2: Integer;
KolonSayisi: Integer;
KolonVerisi: string;
begin
Log.BeginUpdate();
try
for I := 0 to Pred(Lines.Count) do
begin
Log.Add('Satır [' + Succ(I).ToString() + ']: ' + Lines[I]);
KolonSayisi := TotalColumns(Lines[I]);
Log.Add('Tahmini kolon sayısı: ' + KolonSayisi.ToString());
for I2 := 0 to Pred(KolonSayisi) do
begin
KolonVerisi := GetColumn(Lines[I], I2);
if KolonVerisi <> EmptyStr then // En sona koyulan ayraç boş kolon anlamına gelir. Bu kontrol ediliyor
begin
Log.Add(INDENT + Succ(I2).ToString() + ': ' + KolonVerisi);
end;
end;
Log.Add(EmptyStr);
end;
finally
Log.EndUpdate();
end;
end;
Kod: Tümünü seç
2542;2549;2558;2568;2579;2595;2604;2617;2663;0;0;0;0;
542;549;558;568;579;595;604;617;663;0;0;0;0;
42;49;58;68;79;95;04;17;63;0;0;0;0;
2;9;8;8;9;5;4;7;3;0;0;0;0;
2542;2549;2558;2568;2579;2595;2604;2617;2663;0;0;0;0;
Kod: Tümünü seç
Satır [1]: 2542;2549;2558;2568;2579;2595;2604;2617;2663;0;0;0;0;
Tahmini kolon sayısı: 14
1: 2542
2: 2549
3: 2558
4: 2568
5: 2579
6: 2595
7: 2604
8: 2617
9: 2663
10: 0
11: 0
12: 0
13: 0
Satır [2]: 542;549;558;568;579;595;604;617;663;0;0;0;0;
Tahmini kolon sayısı: 14
1: 542
2: 549
3: 558
4: 568
5: 579
6: 595
7: 604
8: 617
9: 663
10: 0
11: 0
12: 0
13: 0
Satır [3]: 42;49;58;68;79;95;04;17;63;0;0;0;0;
Tahmini kolon sayısı: 14
1: 42
2: 49
3: 58
4: 68
5: 79
6: 95
7: 04
8: 17
9: 63
10: 0
11: 0
12: 0
13: 0
Satır [4]: 2;9;8;8;9;5;4;7;3;0;0;0;0;
Tahmini kolon sayısı: 14
1: 2
2: 9
3: 8
4: 8
5: 9
6: 5
7: 4
8: 7
9: 3
10: 0
11: 0
12: 0
13: 0
Satır [5]: 2542;2549;2558;2568;2579;2595;2604;2617;2663;0;0;0;0;
Tahmini kolon sayısı: 14
1: 2542
2: 2549
3: 2558
4: 2568
5: 2579
6: 2595
7: 2604
8: 2617
9: 2663
10: 0
11: 0
12: 0
13: 0
- Dosya ekleri
-
- read text file.rar
- (29.36 KiB) 11 kere indirildi
En son ertank tarafından 15 Şub 2023 06:04 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: txt den satır satır veri okuma
çok teşekkür ederim 'ertank'
emegine sağlık armut piş ağzıma düş olmuş.
ben yeniyim delphide kullandığınız komutların bazılarını bilmiyordum şimdi araştıra araştıra öğreniyorum.
tekrardan çok teşekkürler
emegine sağlık armut piş ağzıma düş olmuş.
ben yeniyim delphide kullandığınız komutların bazılarını bilmiyordum şimdi araştıra araştıra öğreniyorum.
tekrardan çok teşekkürler