AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

csv read

Ein Thema von value is NULL · begonnen am 29. Sep 2010 · letzter Beitrag vom 5. Okt 2010
Antwort Antwort
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#1

csv read

  Alt 29. Sep 2010, 09:03
Hi Delphianer, habe eine neue herausforderung (für mich zumindest ) da ich mit csv noch nie zu tun hatte

mein csv file sieht wie folgt aus:

Code:
Firma;Channel;MAC
A;1;x
A;2;x
A;3;x
A;4;x
A;5;x
B;6;x
B;7;x
Meine Aufgabe besteht darin, Alle Einträge für Firma A (in diesem Fall Channel 1-4 und Mac x - x) in ein xml zu schreiben. Jedoch scheitere ich schon am auslesen.
Habe hier im Forum folgende unit gefunden:

http://www.delphipraxis.net/110025-c...v-dateien.html

Die ist prinzipiell super, aabbbeerrr wenn ich folgenden code verwende:

Delphi-Quellcode:
var
  csvreader : TCsvReader;
  sData : TFilestream;
  i : integer;

begin
  sData := TFilestream.Create('M:\modules Delphi\CSVreader\config.csv',fmopenread);
  csvReader := TCSVReader.Create (sData, ';');
  csvReader.First;
  try
    while not csvreader.Eof do begin
      for i:=0 to csvreader.columncount -1 do
        Writeln(csvreader.Columns[i]);
      csvreader.Next;
    end;
  finally
    csvreader.Free;
    sdata.Free;
  end;
end.
bekomme ich folgendes Ergebnis:

Code:
Firma
Channel
MAC
A
1
X
A
2
X
A
3
X
A
4
X
A
5
X
B
6
X
B
7
X
Wie könnte ich das Firmenbezogen machen bzw. hat jemand ein Beispiel wie das funktionieren könnte?

Danke im Voraus

LG
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#2

AW: csv read

  Alt 29. Sep 2010, 09:16
Du müsstest csvReader.Columns[0] auf die richtige Firma prüfen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#3

AW: csv read

  Alt 29. Sep 2010, 09:36
das bedeutet für mich was?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#4

AW: csv read

  Alt 29. Sep 2010, 09:44
Eine Abfrage einzubauen?
Delphi-Quellcode:
var
  csvreader : TCsvReader;
  sData : TFilestream;
  i : integer;

begin
  sData := TFilestream.Create('M:\modules Delphi\CSVreader\config.csv',fmopenread);
  csvReader := TCSVReader.Create (sData, ';');
  csvReader.First;
  try
    while not csvreader.Eof do begin
      //nur Firma 'A'
      if csvreader.Columns[0] = 'Athen
        for i:=0 to csvreader.columncount -1 do
          Writeln(csvreader.Columns[i]);
      csvreader.Next;
    end;
  finally
    csvreader.Free;
    sdata.Free;
  end;
end.
Vorher würde ich aber noch sicherstellen, dass auch Columns vorhanden sind, aber ich war zu faul, mir die Klasse jetzt anzuschauen (vermutlich geht Columns.Count).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#5

AW: csv read

  Alt 29. Sep 2010, 11:42
ok das funkt gut, bekomme jetzt praktisch alle spalten welche mit Firma A zu tun haben.

Aber wie funktioniert das dann, wenn ich zB sagen möchte:

*) Alle zeilen für Firma a auslesen
*) Alle Channels und MAC Adressen, welche gefunden wurden in ein Textfile schreiben: Channel 1 = MAC X

weiß leider nicht wie ich das anstellen soll
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: csv read

  Alt 29. Sep 2010, 11:45
Hallo,

ich würde eine TStringList nehmen (Stichwort Delimiter und DelimitedText),
Damit werden die Daten einer Zeile gelesen.
Wie du die dann weiterverarbeitest, ist deine Sache (ich würde eine Klasse + TList nehmen).


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz