Hilfe für Schleife ?? Viel Lesen :)



  • Leider nicht ganz das was ich brauche da es bei mir ja immoment nur um die Kopfzeile geht die auch mit den Aktuellen daten vom DBText gefüttert werden muss 😃



  • 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 Schleife

    for (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:

    xx+xxxxxxxxxxTyy+yyyyyyyyyyFrom:Bla+xx+xxxxxxxxxxOrganization:HotelTo:yy+yyyyyyyyyy(MaxMustermann)Date:Di,14.Feb200610:56:51+0001Subject:FileTransferApplication:Soft0.5FileCounter:1FileName:lol.txtFileType:ASCIIHallo,diesisteineTestdateiFrom:Bla+xx+xxxxxxxxxxOrganization:HotelTo:yy+yyyyyyyyyy(MaxMustermann)Date:Di,14.Feb200610:56:51+0001Subject:FileTransferApplication:Soft0.5FileCounter:2FileName:lol.txtFileType:ASCIIHallo,diesisteineTestdateiFrom:Bla+xx+xxxxxxxxxxOrganization:HotelTo:yy+yyyyyyyyyy(MaxMustermann)Date:Di,14.Feb200610:56:51+0001Subject:FileTransferApplication:Soft0.5FileCounter:3FileName:lol.txtFileType:ASCIIHallo,diesisteineTestdatei xx+xx-xxxx-xxxx T yy+yy-yyyy-yyyy 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.5 FileCounter: 1 FileName: lol.txt FileType: ASCII Hallo, dies ist eine Testdatei 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.5 FileCounter: 2 FileName: lol.txt FileType: ASCII Hallo, dies ist eine Testdatei 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.5 FileCounter: 3 FileName: lol.txt FileType: ASCII Hallo, dies ist eine Testdatei

    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.5

    FileCounter: 1
    FileName: lol.txt
    FileType: ASCII
    Hallo, dies ist eine Testdatei

    Nicht 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
    gehts

    die 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 gehts

    genau 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 gehts

    es steht aber nach meinem aufbau

    Tommy Haase
    Hallo du da wie gehts

    Max 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 datei

    Memo1->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!


Anmelden zum Antworten