![]() |
|
CSV'ye veri aktarma - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: CSV'ye veri aktarma (/showthread.php?tid=7657) |
CSV'ye veri aktarma - Altıner - 27-03-2024 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'ye veri aktarma - enigma - 27-03-2024 .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. CSV'ye veri aktarma - Altıner - 27-03-2024 CVS'yi ben excel mantığında olduğunu sanıyordum. Teşekkür ederim. Cvp: CSV'ye veri aktarma - Mr.X - 27-03-2024 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 Cvp: CSV'ye veri aktarma - enigma - 28-03-2024 (27-03-2024, Saat: 16:20)Mr.X Adlı Kullanıcıdan Alıntı: Merhaba,Mr.X resmen proje yazmış
Cvp: CSV'ye veri aktarma - Mr.X - 28-03-2024 (28-03-2024, Saat: 11:24)enigma Adlı Kullanıcıdan Alıntı: Mr.X resmen proje yazmış Faydalı olduysa ne mutlu hocam
|