Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Nach .cvs Dateiauslesen string in Record schreiben

  Alt 30. Mai 2005, 10:45
Hallo Osse,

hier ein wenig Code für dich zum Lesen - vielleicht bringt es dich ein wenig auf den Weg. Die Action cmdFileOpen musst du deinem Button oder MenuItem zuweisen.
Delphi-Quellcode:
type
  PCANRcvMsg = ^TCANRcvMsg;
  TCANRcvMsg = record
    ID: word;
    MsgType: cardinal;
    Len: 0..15;
    Data: array [0..3] of byte;
  end;

var
  MessageList: TList;

procedure TMainForm.ReadMessages(fileName: string; msgList: TList);
var
  line: string;
  lineCount: integer;
  sl: TStringList;
  st: TStringList;
  i: integer;
  msg: PCANRcvMsg;
begin
  AssignFile(input, fileName);
  Reset(input); // Öffnen für LESEN
  lineCount := 0;
  st := TStringList.Create;
  st.Delimiter := ';';
  while not Eof do begin
    ReadLn(line);
    Inc(lineCount);
    st.DelimitedText := line;
    New(msg);
    with msg^ do
      for i := 0 to sl.Count - 1 do begin
        ID := StrToInt(sl[0]);
        MsgType := StrToInt(sl[1]);
        Len := StrToInt(sl[2]);
        Data[0] := StrToInt(sl[3]);
        Data[1] := StrToInt(sl[4]);
        Data[2] := StrToInt(sl[5]);
        Data[3] := StrToInt(sl[6]);
      end;
    msgList.Add(msg);
  end;
  st.Free;
end;

procedure TMainForm.cmdFileOpenExecute(Sender: TObject);
begin
  with OpenDialog do
    if Execute then begin
      MessageList := TList.Create;
      ReadMessages(FileName, MessageList);
    end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat