Zum Inhalt springen

Tale

Mitglieder
  • Gesamte Inhalte

    8
  • Benutzer seit

  • Letzter Besuch

  1. Tale

    FindFile

    Hallo Zusammen! Habe ein Programm geschrieben (Borland, C++), dass mir bestimmte Werte aus einem Protokoll (Textdatei) einließt (z.B. Name, Seriennummer...) Will das Programm nun so erweitern, dass es mehrere Protokolle (Textdadeien) einließt, d.h. es sollen alle Textdateien eingelesen werden, die sich beispielsweise in c:/Tales befinden. Die Anzahl der Textdateien in diesem Ordner kann sich im Laufe der Zeit verändern... Der Name einer Textdatei ist bsp: PDUM01-00342_06032007_0248_1856.txt oder PDUM01-00433_25072007_0620_1856.txt... Jedoch sind für mich nur die rot markierten Zahlen von Bedeutung --> Seriennummer (muss keine fortlaufende Nummer sein) Zusammengefasst will ich mit meinem Programm im Ordner Tales von einer Textdatei in die andere Textdatei "wechseln" sodass zum Schluss alle Textdateien bearbeitet werden konnten. Das sollte anscheinend mit FindFile gehen, jedoch weiß ich nicht wie!? Wäre euch sehr dankbar, wenn ihr mir weiterhelfen könntet, da ich relativ wenig Erfahrung mit C++ habe. Gruß Tales
  2. Tale

    ADOQuery

    Zitat: "Was heißt denn ohne "= NULL Und wie setze ich den String Temp_fehler zurück? Geht ja nicht einfach= Tempfehler="0"; Wie mach ich das am besten? Bin leider erst Anfänger, sorry! Gruß Tale
  3. Tale

    ADOQuery

    Die Datensätze in denen kein Fehler_temp enthalten ist sollen auch an die Datenbank gegeben werden... Jedoch in der Spalte Fehler ohne den Temperaturfehler. Jedoch steht in jeder Spalte dieser Temperaturfehler... Gruß Tale
  4. Tale

    ADOQuery

    Vielleicht findest du ja etwas, ohne genau zu wissen, was das Programm eigentlich macht: int anzahl=44; //Anzahl der Protokolle String Serial; String Slot; String Pruefer; String Datum; String Typ; String Fehler_temp; String Fehler_error; String Fehler_fail; String Fehler_fail_error; String Fehler_warning; String Fehler_fuse; String Fehler_system; String Last_line; int i=0; int k=1; String pf; for (int j=0;j!=anzahl ;j++ ) { TStringList *wert=new TStringList(); if (k<10) { pf="0000"+String(k); //Pfad } if (k>=10) { pf="000"+String(k); } wert->LoadFromFile("C:\\PDUM01-"+pf+".wdf"); Serial=wert->Strings[1].SubString(13,12); if (wert->Strings[1].Pos("M01")) { Typ="M01"; } else { Typ="S01"; } Datum=wert->Strings[2].SubString(11,10); if (wert->Strings[5].Pos("10")) { Slot="10"; } else { Slot=wert->Strings[5].SubString(11,1); //Einstellige Slotnummer } Pruefer=wert->Strings[6].SubString(13,4); while(Last_line!="End") { i++; if(wert->Strings.Pos("endresult")) { Last_line="End"; } if(wert->Strings.Pos("PDU overtemperature")) { Fehler_temp="PDU overtemperature"; } if(wert->Strings.Pos("PDU error")) { Fehler_error="PDU error"; continue; } if(wert->Strings.Pos("PDU fail-error")) { Fehler_fail_error="PDU fail-error"; continue; } if(wert->Strings.Pos("PDU fail")) { Fehler_fail="PDU fail"; continue; } if(wert->Strings.Pos("PDU fail-warning")) { Fehler_warning="PDU fail-warning"; continue; } if(wert->Strings.Pos("Error Fuse")) { Fehler_fuse="Error Fuse"; continue; } if(wert->Strings.Pos("System Error HASS")) { Fehler_system="System Error HASS"; continue; } } ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("INSERT INTO Protokoll (Seriennummer,Slot,Prüfer,Datum,Typ,Fehler)"); ADOQuery1->SQL->Add("VALUES ('"+Serial+"','"+Slot+"','"+Pruefer+"','"+Datum+"' ,'"+Typ+"','"+Fehler_temp+"')"); ADOQuery1->ExecSQL(); ListBox_Daten->Items->Add(Datum+" "+ Serial+" "+ Slot+" " + Pruefer+" " + Typ); k++; //ListBox_Daten->Items->Add(Fehler_fail+Fehler_temp+Fehler_error+Fehler_f ail_error+Fehler_warning+Fehler_fuse); delete wert; } Es geht um den rot makierten Temperaturfehler
  5. Hallo zusammen! Habe da ein Problem! Muss mehrere Protokolle auslesen, und bestimmte Werte in einer Datenbank schreiben... Die Werte der Protokolle werden wie folgt an die Datenbank gegeben: ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("INSERT INTO Protokoll (Seriennummer,...)"); ADOQuery1->SQL->Add("VALUES ('"+Serial+"',...')"); ADOQuery1->ExecSQL(); ADO Query ist in einer Schleife und wird somit mit jedem Protokoll ausgeführt, damit diese Daten übertragen werden... Jedoch hat nicht jedes Protokoll eine Seriennummer d.H. wenn in einem Protokoll keine Seriennummer eingelesen wurde wird die Seriennummer des des Protokolls davor in die Datenbank geschrieben... Wie kann ich es machen, das dass nicht mehr passiert? ADOQuery löschen??? Danke, gruß Tales
  6. Hallo Zusammen! Möchte gerne bestimmte Daten aus meiner Datenbank abfragen. Normalerweise ja kein Problem, jedoch möchte ich die Abfrage erst mit einem Klick auf einen Button starten und entsprechend in einem DBGrid angezeigt werden. D.h. ich muss dem Programm irgendwie klarmachen, dass ich die Daten in meinem DB Grid haben will!? So hab ich das bis jetzt gemacht: void __fastcall TForm1::Button1Click(TObject *Sender) { ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("SELECT *"); ADOQuery1->SQL->Add("FROM Protokoll"); ADOQuery1->ExecSQL(); } Danke für euere Hilfe, gruß Tale
  7. Tale

    ADOQuery

    ok, funktioniert! Vielen Dank! Hab jetzt aber noch ein weiteres Problem: Folgende Fehlermeldung kommt nun, wenn ich zu viele Strings einfüge: Im Projekt Projekt1.exe ist eine Exception der Klasse EStringListError mit der Meldung 'Listenindex überschreitet das Maximum (5898314)' aufgetreten. Was bedeutet das und was kann ich dagegen tun? Gruß Tale
  8. Hallo Zusammen Habe folgendes Problem: Habe ein c++ Programm geschrieben (Borland), dass mir bestimmte Daten aus einem Protokoll ausliest (z.B. Seriennummer) Diese Daten werden an einen String übergeben. Dieser String muss nun mit ADOQuery in meine Datenbank (Acces) gegeben werden (z.B. Seriennummer in Spalte Serial) Hab schon eine ADOConnection, eine DataSource und ein ADOQuery angelegt. Hab das ganze so gemacht: ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("INSERT INTO Protokoll (Seriennummer)"); ADOQuery1->SQL->Add("VALUES ('Serial')"); ADOQuery1->ExecSQL(); Den String mit dem Namen Serial soll jetzt an meine Datenbank gegeben werden (beispielsweise S01-00111) Jedoch wird bei mir in die Datenbank nur Serial geschrieben. Vielen Dank im Voraus Gruß Tale

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...