CSV Daten aus Zwischenablage in Stringggrid

Rund um die LCL und andere Komponenten
Antworten
Ta152
Beiträge: 10
Registriert: Mi 13. Feb 2013, 11:58

CSV Daten aus Zwischenablage in Stringggrid

Beitrag von Ta152 »

Ich bin seit neustem wieder mit Programmieren angefangen nachdem ich vor 10-15 Jahren schon ein bisschen mit Delphi Programmiert habe (auf niedrigem Niveu). Jetzt habe ich da ein kleines Problem, vermutlich finde ich nur die passende Funktion nicht. Ich möchte CSV Daten (Excel) aus der Zwischenablage in ein Stringgrid einfügen. Wenn die Daten in einer Textdatei wären wäre das ja kein Problem mit LoadfromCsvFile aber wie geht das aus der Zwischenablage? Bis jetzt habe ich im Internet nur Anleitungen gefunden die anscheinend die CSV Datei Auseinandernehmen, aber das muss doch einfacher gehen.

Besten Dank für alle Hilfsversuche.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von Michl »

Habs noch nicht benötigt, aber beim googeln habe ich folgende Seite gefunden (leider nicht deutsch und kein Englisch, doch der Code sieht ganz praktikabel aus)

http://thundaxsoftware.blogspot.de/2009 ... ggrid.html

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von theo »

Es gibt ja auch LoadFromCSVStream, damit kann man es aus einem MemoryStream laden.

Code: Alles auswählen

var  MS:TMemoryStream;
begin
  if Clipboard.HasFormat(CF_Text) then
  begin
    MS:=TMemoryStream.Create;
    Clipboard.GetFormat(CF_Text,MS);
    MS.Position:=0;
    StringGrid1.LoadFromCSVStream(MS,#9,true);
    MS.free;
  end;
end;
 

Ta152
Beiträge: 10
Registriert: Mi 13. Feb 2013, 11:58

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von Ta152 »

Danke, das ist genau das was ich suche.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von hbr »

Hallo Herr Theo,
ich möchte mich auf einen von Ihnen geschriebenen Post beziehen.

Bei mir gibt es für Stringgrid nur LoadFromCSV und LoadFromFile.

Hat sich hier zwischenzeitlich etwas geändert?
Ich könnte nämlich LoadFromCSVStream gut gebrauchen.

theo hat geschrieben:Es gibt ja auch LoadFromCSVStream, damit kann man es aus einem MemoryStream laden.

Code: Alles auswählen

var  MS:TMemoryStream;
begin
  if Clipboard.HasFormat(CF_Text) then
  begin
    MS:=TMemoryStream.Create;
    Clipboard.GetFormat(CF_Text,MS);
    MS.Position:=0;
    StringGrid1.LoadFromCSVStream(MS,#9,true);
    MS.free;
  end;
end;
 

mfg
hbr

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von knight »

aus grids.pas

Code: Alles auswählen

procedure LoadFromCSVStream(AStream: TStream; ADelimiter: Char=','; WithHeader: boolean=true);
knight

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von hbr »

Hallo,
Nein!!! in LCL nicht enthalten Laz V1.0.8 nicht enthalten.



{ $Id: grids.pas 37777 2012-06-25 10:26:51Z martin $}
{
/***************************************************************************
Grids.pas
---------
An interface to DB aware Controls
Initial Revision : Sun Sep 14 2003

mfg

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von theo »

Ja, in 1.0.8 ist es nicht enthalten.
Wenn du das brauchst, musst du von SVN oder einen Snapshot installieren.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von hbr »

Hallo,
versteh ich nicht!

Heist das es gibt irgend wo ein grids.pas wo das drin enthalten ist???

Gruß

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von theo »

hbr hat geschrieben: Heist das es gibt irgend wo ein grids.pas wo das drin enthalten ist???
Kann man so sagen. Vor allem gibt es aber die Entwicklungsversionen von Lazarus, mit neueren Features als die offiziellen (stabilen) Versionen.
Am einfachsten gibt es tagesaktuelle Versionen hier: http://freepascal.dfmk.hu/test/lazarus/

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von hbr »

Hallo Danke!

Bin jetzt bis Version 1.0 zurükgegangen!
Doch leider keine Spur von LoadFromCSVStream in lcl\Grids.pas
theo hat geschrieben:
hbr hat geschrieben: Heist das es gibt irgend wo ein grids.pas wo das drin enthalten ist???
Kann man so sagen. Vor allem gibt es aber die Entwicklungsversionen von Lazarus, mit neueren Features als die offiziellen (stabilen) Versionen.
Am einfachsten gibt es tagesaktuelle Versionen hier: http://freepascal.dfmk.hu/test/lazarus/
LoadFromCSV z.B. gabe es ab Version 1.0

gruß

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von theo »

hbr hat geschrieben: Bin jetzt bis Version 1.0 zurükgegangen!
Wieso das denn?

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von hbr »

theo hat geschrieben:
hbr hat geschrieben: Bin jetzt bis Version 1.0 zurükgegangen!
Wieso das denn?
Meinte natürlich die Grids.pas in den verschiedenen Versionen von 1.0 bis 1.08 -> http://svn.freepascal.org/svn/lazarus/tags/

Da ist von LoadFromCSVStream nix drin enthalten.

mfg

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: CSV Daten aus Zwischenablage in Stringggrid

Beitrag von Socke »

hbr hat geschrieben:Meinte natürlich die Grids.pas in den verschiedenen Versionen von 1.0 bis 1.08 -> http://svn.freepascal.org/svn/lazarus/tags/
Theos Frage bleibt: Wieso das denn?

Die Methode LoadFromCSVStream() ist in einer neueren Version als 1.0.8 verfügbar. Da du unter dem von dir geposteten Link keine neuere Version findet, gibt es nur noch die aktuelle Entwicklungsversion. In der werden alle Entwicklungen eingepflegt und zu einem bestimmten Zeitpunkt in einer neuen Version veröffentlicht.

Den Quelltext für die Datei grids.pas kannst du dort natürlich auch finden: http://svn.freepascal.org/svn/lazarus/trunk/lcl/
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten