Hilfe für Schleife ?? Viel Lesen :)
-
kannste dir vlei mal ein halbwegs ordentliches deutsch mit satzzeichen und co angewöhnen? außerdem ist die erklärung deines problems nicht wirklich hilfreich. selbst nach dreimaligen lesens verstehe ich es immer noch nicht!
-
am besten schreibt mir mal jemand der sich mit dem problem auseinandersetzen möchte ICQ: 104611851
-
Also nochmal *nerv*
1. Es werden Textdatein ausgewählt die in einer Datei zusammengefasst werden.
2. Es sollen soviele Textdateien erstellt werden wie die Datenbank Kunde hat.
3. Die Kopfzeile darf in jeder Textdatei nur 1x vorkommen muss aber den aktuellen Datensatz enthalten wo die Schleifefor (Query1->First();!Query1->Eof;Query1->Next())
gerade ist.
4. Das Probelm !!!!
Wenn ich den Quelltext so aufbaue läuft die schleife nach Anzahl der Datensätze durch... und speichert auch jede Zusammengefasste Textdatei, aber verhaspelt sich total bei der Kopfzeile und fügt sie je nach laune manchmal 10x mit anderen Datenwerten in einen Zusammengefasste Textdatei und manchmal 100x aber nie 1x wie s sein soll
Zusammengefasste Textdatei auszug:
für xx und yy werden werden immer von verschieden Datensätzen aus der DB die Daten übernommen...
aussehen soll jede datei aber so:
From: Bla+xx+xx-xxxx-xxxx
Organization: Hotel
To: yy+yy-yyyy-yyyy(Max Mustermann)
Date: Di, 14. Feb 2006 10:56:51 +0001
Subject: FileTransfer
Application: Soft 0.5FileCounter: 1
FileName: lol.txt
FileType: ASCII
Hallo, dies ist eine TestdateiNicht mehr und nicht weniger danach wird sie ja gespeichert und soll damit als beendet gelten.. und die darauffolgende soll auch wieder so aussehen nur mit den nächsten Datensatz..
Besser kann ich es nicht erklären am besten mal versuchen durch den Quelltext wuseln.//--- Wenn keine Datein gewählt wurden gar nicht erst mit Transfer starten if (Form1->ListBox1->Items->Count ==0) { ShowMessage("Bitte Dateien auswählen"); } //------------------------------------------------------------------- //--- Wenn Files Vorhanden starte..---------------------------------- else { TStringList* lol = new TStringList(); int i=0,b=0,x=0; int B=0; for (Query1->First();!Query1->Eof;Query1->Next()) { //--- KopfZeile der zu erstellenden Dateien--------------------------- Label5->Caption = FormatDateTime("DDD, DD. MMM YYYY HH:MM:SS +0001", Now()); Memo1->Lines->Add("T "+Query1->Fields->Fields[0]->AsString+Query1->Fields->Fields[8]->AsString+""); Memo1->Lines->Add(""); Memo1->Lines->Add("From: LogoTipp+49-5522-869351"); Memo1->Lines->Add("Organization: LogoTipp"); Memo1->Lines->Add("To: "+Query1->Fields->Fields[0]->AsString+Query1->Fields->Fields[8]->AsString+"("+Query1->Fields->Fields[1]->AsString+" "+Query1->Fields->Fields[2]->AsString+")"); Memo1->Lines->Add("Date: "+Label5->Caption); Memo1->Lines->Add("Subject: FileTransfer"); Memo1->Lines->Add("X-TixiApplication: TixiSoft 0.5"); Memo1->Lines->Add(""); //--- Ende der Kopfzeile---------------------------------------------- //--- Einfacher Zähler------------------------------------------------ for (i=0; i<ListBox1->Items->Count; i++) { b++; } //-------------------------------------------------------------------- //--- Einfügen von Textdatei zur Komplettdatei------------------------ Memo1->Lines->Add("FileCounter: "+IntToStr(b)); for (i=0; i<ListBox1->Items->Count; i++) { Label5->Caption=ListBox1->Items->Strings[i]; lol->LoadFromFile(ListBox1->Items->Strings[i]); Memo1->Lines->Add("FileName: "+LowerCase(ExtractFileName(Label5->Caption))); Memo1->Lines->Add("FileType: ASCII"); Memo1->Lines->AddStrings(lol); } //--------------------------------------------------------------------- //--- Datein speichern anhand der Menge der Datensätze die vorhanden sind B++; Memo1->Lines->SaveToFile("C:\\"+Query1->Fields->Fields[0]->AsString+"_ODDEST.gtw"); //--------------------------------------------------------------------- } } }
-
und warum programmierst du es dann nicht so, wie du es beschreibst? vielleicht solltest du dein programm mal schritt für schritt durchgehen und überlegen, was es an welcher stelle macht und dich fragen, ob das dort sinn macht und gewollt ist!
-
würde ich wissen wie ich die schleife richtig setze würde ich es hier nicht posten

-
Du hast eine Ausgabedatei und n Eingabedateien (die du in der Schleife abarbeitest) - jetzt willst du für jede Eingabedatei eine Kopfzeile einfügen, aber nur eine Kopfzeile in der gesamten Ausgabe. Habe ich das Problem richtig zusammengefasst? Wenn ja, erkennst du in der Zusammenfassung den Wiederspruch?
-
ganze einfach habe 5 datein mit dem inhalt
hallo
du
da
wie
gehtsdie werden in einer zusmmaengefasst....
und in der Kopfezeile steh
Tommy Haase z.b als Kunde also steht in der zusammengefaasten:
Tommy Haase
Hallo du da wie gehtsgenau das gleiche soll mit der nächsten Datei auch machen aber mit dem nächsten kunden z.b Max Meier also soll dann da stehen
Max Meier
Hallo du da wie gehtses steht aber nach meinem aufbau
Tommy Haase
Hallo du da wie gehtsMax Meier
Hallo du da wie gehts
-
Na dann ist ja alles richtig ....

-
Oh mein Gott die Antwort war so einfach bin jetzt selbst drauf gekommen
ich muss natürlcih nach dem speichern der ersten dateiMemo1->Lines->SaveToFile("C:\"+Query1->Fields->Fields[0]->AsString+"_ODDEST.gtw");
Memo1->Lines->Clear();auch das Memo wieder clearen omg bin ich blöd

-
es geschehen doch noch wunder!