ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
668
668
EMPFEHLEN
-
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
-
11.02.06 16:40 #2
Hi,
wo liegt genau das problem? Oder weißt du das selber nicht?
Kommt ein fehler beim ausführen?
Was mir auf die schnelle auffällt ist das " ganzerstring" nicht unter Var steht.
Gruss,
MArcGenieße dein Leben ständig....Du bist länger tod als lebendig
-
In diesem Fall denke ich, dass es dir mehr bringt, wenn du dir einfach mal einen fertigen Code ansiehst und daraus lernst. Also schau dir meinen hier an, ich denke, er tut ungefähr das, was du willst. Allerdings arbeitet er mit einer Kopie von ganzerstring, wie du siehst, und kürzt also nur die Kopie und nicht den String selbst.
Mir ist klar, dass ich bei den Copy-Aufrufen die Längen der Strings nicht berechne, aber das ist der Copy-Funktion ja egal.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
function ValueOfKeyword( ganzerstring: string; keyword: string ): string ; label Start, ExitLoop ; var sem,g: Integer ; t,k: string ; begin sem := 0 ; ganzerstring := ganzerstring+';' ; Start: sem := Pos( ';', ganzerstring ) ; if( sem=0 ) then goto ExitLoop ; t := Copy( ganzerstring, 1, sem-1 ) ; ganzerstring := Copy( ganzerstring, sem+1, Length( ganzerstring ) ) ; g := Pos( '=', t ) ; k := Copy( t, 1, g-1 ) ; if( k<>keyword ) then goto Start ; ExitLoop: Result := Copy( t, g+1, Length( t ) ) ; end ;
-GawaynGeändert von Gawayn (06.03.06 um 19:49 Uhr)
Ähnliche Themen
-
Filehandling
Von Cailleach im Forum C/C++Antworten: 2Letzter Beitrag: 20.12.04, 16:21 -
Filehandling (auslesen) C
Von bluewaver im Forum C/C++Antworten: 1Letzter Beitrag: 22.03.04, 23:35 -
filehandling Dateien umbenennen
Von michaelschuler im Forum C/C++Antworten: 1Letzter Beitrag: 06.08.03, 12:55 -
resultat rauslesen
Von mr_d2254 im Forum PHPAntworten: 15Letzter Beitrag: 22.03.02, 14:42 -
c - frage ( FILEhandling )
Von murdi im Forum C/C++Antworten: 1Letzter Beitrag: 12.03.02, 19:43





Zitieren
Login





