Frage zu TDateTime



  • öhmmm ich glaube wir reden da gerade aneinander vorbei...

    ich programmiere mit borland builder eine gui mit c++... glaub das hat mit vcl nix zu tun....
    ich glaub ich bin dann mal im falschen thread oder?!? bin gerade etwas überfordert....

    HILFE:(



  • Hallo

    Wenn du im Builder eine GUI mit C++ programmierst, dann arbeitest du auf jedenfall mit der VCL (Visual Component Library). Denn das ist der Name des Frameworks, das vom Builder benutzt wird.
    Und auch ich empfehle dir dringend, erstmal die Grundlagen der Sprache C++ zu lernen (z.B. Konstruktoren), bevor du versuchst (egal womit) GUI-Programme zu schreiben.
    Denn dann würdest du selber drauf kommen, das ich nicht mehr gemeint habe als :

    TDateTime x = TDateTime("10.12.2010");
    

    (Nachteil : das erlaubte Format ist von den Lokalisierungseinstellungen von Windows und der VCL abhängig)

    bis bald
    akari



  • Nein, Du bist schon im richtigen Forum. 😉
    VCL = Visual Component Library, das ist das Framework, mit dem im BCB die WinAPI gekapselt wird. Aber da sollte man sich tatsächlich nur rantrauen, wenn man fundierte C++-Kenntnisse hat.

    Also nochmal Du hast einen CString, den Du in ein TDateTime konvertieren möchtest. Dazu gibt es verschiedene Möglichkeiten (deswegen wirf einen Blick in die Hilfe zu den Konstruktoren von TDateTime und AnsiString oder String (bei Unicode-fähigen BCB-Versionen ist wohl String zu bevorzugen). In meinem BCB 6 verwende ich ausschließlich AnsiString.

    Prinzipiell kannst Du entweder aus dem CString die Zahlenwerte ermitteln, oder eben die fehlenden Punkte einfügen. Für beides gibt es bei TDateTime Konstruktoren. Der Schritt über AnsiString/String ist obligatorisch, da es das Auslesen der Zahlen, bzw. das Einfügen der Punkte deutlich erleichtert.

    Wobei hast Du denn nun noch Schwierigkeiten?
    (Wir sind hier böse. 😉 Wir geben lieber Hilfe zur Selbsthilfe. Dabei lernst Du dann nämlich tatsächlich was.)



  • guten abend

    nach einem kleinem mittagsschlaf und etwas nachdenken bin ich zu folgedem ergebnis gekommen:

    while (iLen1<10)
    	{
    		ComWrite(COM8,Array1,48);   
                                    //ich lese hier über den comport aus
    		Edit5->Text = Array1;  
                                    //im Array1 habe ich einen befehl stehen der
                                      das auslesen ermöglicht
    
    		Sleep(200)  ;
    		iLen1=ComRead(COM8,dBuffer1,64);
    	}
    	int p=0;                //da, die antwort nicht nur das benötigte datum 
                                    //ist sondern folgendes format hat: 
                                    //ack,1,6,23032009#crc fang ich erst an ab 
                                    //stelle 6 zu lesen
    	for(int o =6; o<14;o++)      
    	{                                           
    
    Reginhaltx=Reginhaltx+ dBuffer1[o];					
    if(o==7 || o==9){ Reginhaltx=Reginhaltx+ ".";}
                                                //"." an passende stelle einfügen
    p++;
    	}
    
    	StrToDate(Reginhaltx);  // umwandeln
    
    	int v= ((TDate)Reginhaltx-Today());    
                                                //Differenz zwischen  Ausgelesenem 
                                                //Datum und dem aktuellen berechnen
                                                //und anschliesend auswahl treffen
    
    	if ( v<=0) {
    	ShowMessage("Abgelaufen");
    	Form2->Edit3->Color = clRed;
    
    	}
    	else if (v>0 && v<=3) {
    	ShowMessage("Bald Aufbrauchen");
    	Form2->Edit3->Color = clYellow;
    
    	}
    	else if (v>3) {
    	ShowMessage("Haltbar");
    	Form2->Edit3->Color = clGreen;
    
    	}
    
    	Form2->Edit3->Text =  DaysBetween(Reginhaltx,Today());  //Ausgeben
    	Form2->Edit2->Text =  Reginhaltx;
    

    Wenn ihr euch jetzt verständlicherweise fragt, was ich da programmiere möchte ich euch natürlich noch aufklären.
    es ist ein schulprojekt, bei dem ein kühlschrank über an verschiedenen produkten angebrachten rfid chips erkennen soll wann das produkt abläuft!!!

    vielen dank für die hilfe, das mit dem datum klappt mal soweit:)

    aber freut euch nicht zu früh, ich hab sicher noch einiges was ich euch fragen muss!!!! 😋 😋
    /Edit akari : Bitte Code-Tags benutzen


Anmelden zum Antworten