AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Nach .cvs Dateiauslesen string in Record schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Nach .cvs Dateiauslesen string in Record schreiben

Ein Thema von Osse · begonnen am 30. Mai 2005 · letzter Beitrag vom 30. Mai 2005
 
Osse

Registriert seit: 25. Mär 2005
Ort: Hamburg
74 Beiträge
 
Delphi 5 Enterprise
 
#1

Nach .cvs Dateiauslesen string in Record schreiben

  Alt 30. Mai 2005, 09:37
Hallo,

ich möchte eine .csv Datei auslesen. Die Daten sind folgendermassen aufgebaut : '2;45;5;56;'.
Kann die Datei auch auslesen. Anschließend möchte ich den String in einen Recrod schreiben. Habe nur Integerwerte.

Mein Problem: ich kann immer nur eine Zahl auslesen.

Ok, ein Bsp: 45

hab schon die 4 ausgelesen. Jetzt die um einen nach links shiften und die 5 hinten anhängen.

Hier der entsprechende Auszug aus meinem Programm:

Delphi-Quellcode:
procedure TForm1.ffnen1Click(Sender: TObject);
var
   datei : textFile;
   Einlesestring : string;
   zaehler : Integer;
   Stringzaehler : Integer;
   Recordeintrag : Integer;
   EinleseRCVMsg : TCANRcvMsg;
   Zwischenspeicher : cardinal;
begin
  if OpenDialog1.Execute then
    begin
   Assignfile(Datei, OpenDialog1.FileName);
   Reset(Datei);      // Datei zurücksetzen
   zaehler := 0; // Daten auslesen bis zum Ende
   while not EOF(Datei) do // und in einen Record schreiben, der später
   begin         // weiterverarbeitet wird
     readln(Datei,Einlesestring);
     inc(zaehler);
     Recordeintrag := 0;
     for Stringzaehler := 1 to Length(Einlesestring)-1 do
       begin
      if (Einlesestring[Stringzaehler] = ';') then
              begin
          inc(Recordeintrag);
          case Recordeintrag of
               1: EinleseRCVMsg.msgbuff.ID             := Zwischenspeicher;
               2: EinleseRCVMsg.msgbuff.MSGTYPE             := Zwischenspeicher;
         3: EinleseRCVMsg.msgbuff.LEN             := Zwischenspeicher;
         4: EinleseRCVMsg.msgbuff.DATA[0]             := Zwischenspeicher;
         5: EinleseRCVMsg.msgbuff.DATA[1]            := Zwischenspeicher;
         6: EinleseRCVMsg.msgbuff.DATA[2]             := Zwischenspeicher;
         7: EinleseRCVMsg.msgbuff.DATA[3]             := Zwischenspeicher;
           end;
         end
      else
       // abfrage und danach nach links shiften
                   Zwischenspeicher := StrToInt(Einlesestring[Stringzaehler]);
                    
      end;
        end;
        end;
end;
gibt es noch ne einfachere Methode???

Sollte natürlich wie immer sehr schnell gehen. Was besseres ist mir bis jetzt noch nicht eingefallen.

Hatte jemand schon mal so ein Problem und hat dies Einfacher gelöst??
  Mit Zitat antworten Zitat
 


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:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz