Hallo. Ich habe folgendes Problem:
Von einer Datei X sollen Jeweils 4Datein erstellt werden. Der Namen besteht aus den Werten von dem Keyword FILIALE und DATUM. In diesen Dateien sollen nun die anderen Keywords mit Werten reingeschrieben werden, wobei Filiale und Datum nicht mehr reingehört. die 4Dateien erstellen habe ich. Aber bei mir wird der ganze Inhalt einer Stringzeile reingelesen. Wie kann ich also die 2Keywords wegnehmen?
Hier wie ein bsp. wie die Werte von der Datei X aussehen:
FILIALE=ZÜRICH;DATUM=20011002;ARTIKELGRUPPE=KÖRPERPFLEGE;ARTIKEL=SEIFE;ANZAHL=3000;PREIS=1.10
Die Datei soll hier also Zuerich_20011002 heissen der Inhalt dieser Datei soll ab ARTIKELGRUPPE stehen!
Hier meine Funktion, welche die Valiirung (schreibt man das so?) der Keywords macht:
//=============================================================================
function Ttext.ValueOfKeyword(var ganzerstring: string; keyword: string):string;
//-----------------------------------------------------------------------------
// A) Als Parameter erhalten wir eine Zeile aus der Eingangdatei und Keyword,
// dessen Wert wir holen wollen
// B) Wir suchen die Start-'Adresse' des Keywords
// C) Danach suchen wir die Start-'Adresse' des Keyword-Wertes
// D) Danach suchen wir die End-'Adresse' des Keyword-Wertes
// E) Als 'result' liefer wir den Wert des Keywords zurück.
// F) Reststring selektieren: ganze Linie - teilstring = Reststring!
//-----------------------------------------------------------------------------
var
p, p2: integer;
c: char;
teilstring: string;
rest_von_teilstring: string;
begin
//teilstring:= copy(ganzerstring, 1, pos(';',ganzerstring));
rest_von_teilstring:= copy(ganzerstring, (Length(teilstring) +1), (Length(ganzerstring)-Length(teilstring)));
p:=pos(keyword, ganzerstring);
c:=ganzerstring[p];
while(c <> '=') do begin
inc(p);
c:=ganzerstring[p];
end;
p2 := p;
while(c <> ';') do begin
inc(p2);
c:=ganzerstring[p2];
end;
result := copy(teilstring, p+1, (p2-p)-1);
ganzerstring:= teilstring + rest_von_teilstring;
end;
wo liegt der Hund begraben?
danke
Von einer Datei X sollen Jeweils 4Datein erstellt werden. Der Namen besteht aus den Werten von dem Keyword FILIALE und DATUM. In diesen Dateien sollen nun die anderen Keywords mit Werten reingeschrieben werden, wobei Filiale und Datum nicht mehr reingehört. die 4Dateien erstellen habe ich. Aber bei mir wird der ganze Inhalt einer Stringzeile reingelesen. Wie kann ich also die 2Keywords wegnehmen?
Hier wie ein bsp. wie die Werte von der Datei X aussehen:
FILIALE=ZÜRICH;DATUM=20011002;ARTIKELGRUPPE=KÖRPERPFLEGE;ARTIKEL=SEIFE;ANZAHL=3000;PREIS=1.10
Die Datei soll hier also Zuerich_20011002 heissen der Inhalt dieser Datei soll ab ARTIKELGRUPPE stehen!
Hier meine Funktion, welche die Valiirung (schreibt man das so?) der Keywords macht:
//=============================================================================
function Ttext.ValueOfKeyword(var ganzerstring: string; keyword: string):string;
//-----------------------------------------------------------------------------
// A) Als Parameter erhalten wir eine Zeile aus der Eingangdatei und Keyword,
// dessen Wert wir holen wollen
// B) Wir suchen die Start-'Adresse' des Keywords
// C) Danach suchen wir die Start-'Adresse' des Keyword-Wertes
// D) Danach suchen wir die End-'Adresse' des Keyword-Wertes
// E) Als 'result' liefer wir den Wert des Keywords zurück.
// F) Reststring selektieren: ganze Linie - teilstring = Reststring!
//-----------------------------------------------------------------------------
var
p, p2: integer;
c: char;
teilstring: string;
rest_von_teilstring: string;
begin
//teilstring:= copy(ganzerstring, 1, pos(';',ganzerstring));
rest_von_teilstring:= copy(ganzerstring, (Length(teilstring) +1), (Length(ganzerstring)-Length(teilstring)));
p:=pos(keyword, ganzerstring);
c:=ganzerstring[p];
while(c <> '=') do begin
inc(p);
c:=ganzerstring[p];
end;
p2 := p;
while(c <> ';') do begin
inc(p2);
c:=ganzerstring[p2];
end;
result := copy(teilstring, p+1, (p2-p)-1);
ganzerstring:= teilstring + rest_von_teilstring;
end;
wo liegt der Hund begraben?
danke