Selamlar,
CSV'ye excelde olduğu gibi her bir kolana olacak şekilde veri aktarma istiyorum, fakat her kolana istediğim veriyi aktaramadım.
Örnekler araştırdım fakat işe yarar bir şeyde bulamadım bu konuda bilgisi olan arkadaşların yardımını rica ederim.
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
csv: TStrings;
FileName: String;
begin
csv := TStringList.Create;
csv.Clear;
try
FileName := Desktop + '12345678.csv';
for I := 0 to ListView1.Items.Count - 1 do
begin
csv.Add(ListView1.Items[I].Data['A'].AsString);
csv.Add(ListView1.Items[I].Data['B'].ToString);
csv.Add(ListView1.Items[I].Data['C'].ToString);
csv.Add(ListView1.Items[I].Data['D'].ToString);
csv.Add(ListView1.Items[I].Data['E'].ToString);
end;
if csv.Text.Length > 0 then
begin
csv.SaveToFile(FileName);
end;
finally
csv.Free;
end;
end;
.CSV dosyası aslında TEXT dosyasıdır. Bu yüzden istediğiniz bir satıra ve kolona doğrudan erişemezsiniz. Satır satır en baştan okutarak sıra ile erişebilirsiniz. İstediğiniz satıra ulaşsanız bile değiştirip güncellemeniz dosya yapısı sebebi ile mümkün değil. Ancak şunu yapabilirsiniz, CSV dosyasını bir Memo alanına "LoadFromFile" komutu ile okutup burada istediğiniz satırı ve sütunu bulup değiştirdikten sonra "SaveToFile" ile kayıt edebilirsiniz.
CVS'yi ben excel mantığında olduğunu sanıyordum.
Teşekkür ederim.
Merhaba,
CSV yazılımcılar için nimet niteliğindedir. ( Değilse de olmalı

)
Sanırım istediğiniz böyle bir şey;
[
attachment=2645]
uses
System.IOUtils;
procedure TForm3.KaydetmeButonuClick(Sender: TObject);
var
csvStringList: TStringList;
i, a : integer;
cacheCl : string;
begin
csvStringList := TStringList.Create;
try
cacheCl := '';
csvStringList.BeginUpdate;
for i := 1 to 5 do
begin
cacheCl := cacheCl + 'Sütun' + i.ToString + ';';
end;
cacheCl := Copy(cacheCl, 1, length(cacheCl));
csvStringList.Add(cacheCl);
for a := 1 to 10 do
begin
cacheCl := '';
for I := 1 to 5 do
begin
cacheCl := cacheCl + 'Satır' + a.ToString + 'Sütun' + i.ToString + ';';
end;
csvStringList.Add(cacheCl);
end;
csvStringList.EndUpdate;
finally
csvStringList.SaveToFile(TPath.Combine(TPath.GetDocumentsPath, 'test.csv'), TEncoding.ANSI);
FreeAndNil(csvStringList);
end;
end;
procedure TForm3.CagirmaButonuClick(Sender: TObject);
begin
Memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'test.csv'));
end;
procedure TForm3.degistirmeButonuClick(Sender: TObject);
var
csvReplaceStringList: TStringList;
i : integer;
cacheNewString : string;
begin
csvReplaceStringList := TStringList.Create;
csvReplaceStringList.Delimiter := ';';
csvReplaceStringList.StrictDelimiter := false;
try
csvReplaceStringList.DelimitedText := Memo1.Lines[4];
csvReplaceStringList[1] := 'Delphican';
cacheNewString := '';
for I := 0 to csvReplaceStringList.Count - 1 do
begin
cacheNewString := cacheNewString + csvReplaceStringList[i] + ';';
end;
Memo1.Lines[4] := cacheNewString;
finally
Memo1.Lines.SaveToFile(TPath.Combine(TPath.GetDocumentsPath, 'test.csv'), TEncoding.ANSI);
FreeAndNil(csvReplaceStringList);
end;
end;
Form arayüzü ( Form üzerine kopyala - yapıştır işlemi uygulayın. ) :
object degistirmeButonu: TButton
Position.X = 24.000000000000000000
Position.Y = 39.000000000000000000
Size.Width = 298.000000000000000000
Size.Height = 57.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
Text = '5. Sat'#305'r 2. S'#252'tunu Delphican Yap'
TextSettings.Trimming = None
OnClick = degistirmeButonuClick
end
object KaydetmeButonu: TButton
Position.X = 24.000000000000000000
Position.Y = 104.000000000000000000
Size.Width = 145.000000000000000000
Size.Height = 57.000000000000000000
Size.PlatformDefault = False
TabOrder = 2
Text = 'Kaydet'
TextSettings.Trimming = None
OnClick = KaydetmeButonuClick
end
object CagirmaButonu: TButton
Position.X = 177.000000000000000000
Position.Y = 104.000000000000000000
Size.Width = 145.000000000000000000
Size.Height = 57.000000000000000000
Size.PlatformDefault = False
TabOrder = 1
Text = #199'a'#287#305'r'
TextSettings.Trimming = None
OnClick = CagirmaButonuClick
end
object Memo1: TMemo
Touch.InteractiveGestures = [Pan, LongTap, DoubleTap]
DataDetectorTypes = []
Position.X = 24.000000000000000000
Position.Y = 169.000000000000000000
Size.Width = 298.000000000000000000
Size.Height = 264.000000000000000000
Size.PlatformDefault = False
TabOrder = 3
Viewport.Width = 294.000000000000000000
Viewport.Height = 260.000000000000000000
end
(28-03-2024, Saat: 11:24)enigma Adlı Kullanıcıdan Alıntı: [ -> ]Mr.X resmen proje yazmış 
Faydalı olduysa ne mutlu hocam
