Danke das jemand draufgeschaut hat und für die Tipps mit dem Ressourcenschutzblock usw.
Das versuche ich noch einzubauen.
Jetzt knallt es tatsächlich und ich verstehe nicht warum.
Die Zeichenkette hatte ich für die ersten Testzwecke im Programm eingebaut
sl.DelimitedText := '0193433020;2301000953;CNC-DB;3302060000;drehen01;300;';
Nun möchte ich die Textdatei laden, welche exakt genauso aussieht und es kommt zu einem
EStringListError - list index(1) out of bounds
sl.LoadFromFile('SPC.txt'); //Datei in Stringliste laden
Im Einzelschritt passiert es bei folgender Zeile.
Auftragsnummer := sl.Strings[0];
Mit ShowMessage(sl.DelimitedText) habe ich mir die Zeichenkette angesehen und mir ist aufgefallen, dass sie unterschiedlich aussieht.
0193433020;2301000953;CNC-
DB;3302060000;drehen01;300; -> alles ok Zeichenkette im Programm
"0193433020;2301000953;CNC-
DB;3302060000;drehen01;300;" -> mit LoadFromFile steht die Kette auf einmal in "...."
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
sl : tstringlist;
Auftragsnummer, Artikelnummer, Messstation, Kapazitaet :
String;
Datei : TextFile;
Filename :
String;
Datum :
String;
log :
String;
begin
sl := TStringList.Create;
sl.Delimiter := '
;';
sl.LoadFromFile('
SPC.txt');
//Datei in Stringliste laden
//sl.DelimitedText := '0193433020;2301000953;CNC-DB;3302060000;drehen01;300;';
ShowMessage(sl.DelimitedText);
Auftragsnummer := sl.Strings[0];
Artikelnummer := sl.Strings[1];
Messstation := sl.Strings[2];
Kapazitaet := sl.Strings[3];
ShowMessage(sl.DelimitedText);
Datum := FormatDateTime('
yyyy_mm_dd__hh_mm_ss', Now);
Filename := '
BDECN ' + Datum + '
.dat';
log := Datum+'
'+sl.DelimitedText;
if Messstation = '
RB'
then
begin
Meldung.Caption := '
skip RB';
logdatei(log);
end
else
if Messstation = '
CNC-FB'
then
begin
Meldung.Caption := '
skip CNC-FB';
logdatei(log);
end
else
begin
Meldung.Caption := '
Datei ok';
logdatei(log);
AssignFile(Datei, Filename);
Rewrite(Datei);
write(Datei, Artikelnummer);
write(Datei, '
;');
write(Datei, '
10');
write(Datei, '
;');
write(Datei, Kapazitaet);
write(Datei, '
;');
write(Datei, '
1');
write(Datei, '
;');
write(Datei, '
1');
write(Datei, '
;');
write(Datei, '
;');
write(Datei, Auftragsnummer);
write(Datei, '
;');
CloseFile(Datei);
sl.Free;
end;
end;
end.