M mezzomix Member Licensed User Dec 18, 2009 #1 Hallo! Habe folgendes Problem bei dem Programm was ich gerade schreibe: Ich speicher in einer Table1 in einer Spalte Geburtstage im Format ""dd.mm.yyyy" ab. Wenn ich diese mit TableSort sortiere werden die Geburtstage ja nach Zeichenfolge sortiert. Ich möchte aber dass Sie richtig nach Datum sortiert werden. Nun habe ich in diesem Forum gelesen, dass man dass irgendwie mit den ticks machen kann und diese dann in einer extra Spalte abspeichert und dann nach dieser sortiert, finde aber nicht genau raus was das ist und wie man die ticks abruft... :sign0085: Gruß mezzomix
Hallo! Habe folgendes Problem bei dem Programm was ich gerade schreibe: Ich speicher in einer Table1 in einer Spalte Geburtstage im Format ""dd.mm.yyyy" ab. Wenn ich diese mit TableSort sortiere werden die Geburtstage ja nach Zeichenfolge sortiert. Ich möchte aber dass Sie richtig nach Datum sortiert werden. Nun habe ich in diesem Forum gelesen, dass man dass irgendwie mit den ticks machen kann und diese dann in einer extra Spalte abspeichert und dann nach dieser sortiert, finde aber nicht genau raus was das ist und wie man die ticks abruft... :sign0085: Gruß mezzomix
klaus Expert Licensed User Longtime User Dec 18, 2009 #2 Mit DateParse kann man ein Datum in Ticks umwandeln. Und mit Date kann man Ticks in einen Datumstring umwandeln. Am einfachsten ist es in einer unsichtbaren Spalte die Ticks abzuspeichern und diese zu sortieren. Zum Beispiel das Keyword Now gibt die aktuelle Zeil in Ticks an die man dann mit Date(Now) in einen Datumstring umwandeln kann oder mit Time(Now) in einen Zeitstring. Beste Grüsse.
Mit DateParse kann man ein Datum in Ticks umwandeln. Und mit Date kann man Ticks in einen Datumstring umwandeln. Am einfachsten ist es in einer unsichtbaren Spalte die Ticks abzuspeichern und diese zu sortieren. Zum Beispiel das Keyword Now gibt die aktuelle Zeil in Ticks an die man dann mit Date(Now) in einen Datumstring umwandeln kann oder mit Time(Now) in einen Zeitstring. Beste Grüsse.
specci48 Well-Known Member Licensed User Longtime User Dec 18, 2009 #3 Hallo mezzomix, willkommen bei Basic4ppc! Anbei im Anhang ein kleines Beispiel. Diese Vorgehensweise hatte ich bereits einmal in einem anderen Post hier erläutert. Gruß specci48 Attachments DatumSortieren.sbp DatumSortieren.sbp 1.9 KB · Views: 490
Hallo mezzomix, willkommen bei Basic4ppc! Anbei im Anhang ein kleines Beispiel. Diese Vorgehensweise hatte ich bereits einmal in einem anderen Post hier erläutert. Gruß specci48
M mezzomix Member Licensed User Dec 18, 2009 #4 edit-Noch ne Frage dazu: Ich glaube hierbei liefert ja der Calendar die Ticks. Wenn ich nun aber eine Textbox habe wo ich das Datum eintippe, wie mache ich dass dann. Kann ich dass im richtigem Format eingegebene Datum irgendwie in Ticks umwandeln? Habe es nicht hinbekommen Super vielen Dank und schönes WE! gruß mezzomix Last edited: Dec 18, 2009
edit-Noch ne Frage dazu: Ich glaube hierbei liefert ja der Calendar die Ticks. Wenn ich nun aber eine Textbox habe wo ich das Datum eintippe, wie mache ich dass dann. Kann ich dass im richtigem Format eingegebene Datum irgendwie in Ticks umwandeln? Habe es nicht hinbekommen Super vielen Dank und schönes WE! gruß mezzomix
klaus Expert Licensed User Longtime User Dec 19, 2009 #5 Mit DateParse kann man ein Datum in Ticks umwandeln. Und mit Date kann man Ticks in einen Datumstring umwandeln. Beiliegend ein Beispiel. Beste Grüsse.
Mit DateParse kann man ein Datum in Ticks umwandeln. Und mit Date kann man Ticks in einen Datumstring umwandeln. Beiliegend ein Beispiel. Beste Grüsse.
M mezzomix Member Licensed User Dec 19, 2009 #6 Danke!! Durch dein Stichwort habe ich es jetzt auch in der Hilfe gefunden gruß
M mezzomix Member Licensed User Dec 22, 2009 #7 Hallo! Ich habe nun folgendes Problem. Ich habe eine table(wird als xml Datei gespeichert) mit folgenden Daten gefüttert: z.B. Col:Geburtstage Col:Vorname Col:Nachname 01.12.1975 Max Mustermann 31.12.1967 ........ ................. 01.01.1980 04.03.1968 Ich möchte nun, dass durch einen klick auf einen Button der nächste Geburtstag, von dem aktuellem Datum aus gesehen, in einer MsgBox erscheint.Also in diesem Fall der 31.12. Habe schon etliches ausprobiert...habe die Geburtstagsdaten mit StrSplit auseinandergenommen, damit ich das Geburtsjahr nicht mehr dabei habe und habe dann versucht diese Daten weiter zu verarbeiten, habe dass mit ticks versucht, usw. weiss nun nicht mehr weiter... ne Lösung gibts bestimmt...ich komm nur nicht drauf gruß mezzomix Last edited: Dec 22, 2009
Hallo! Ich habe nun folgendes Problem. Ich habe eine table(wird als xml Datei gespeichert) mit folgenden Daten gefüttert: z.B. Col:Geburtstage Col:Vorname Col:Nachname 01.12.1975 Max Mustermann 31.12.1967 ........ ................. 01.01.1980 04.03.1968 Ich möchte nun, dass durch einen klick auf einen Button der nächste Geburtstag, von dem aktuellem Datum aus gesehen, in einer MsgBox erscheint.Also in diesem Fall der 31.12. Habe schon etliches ausprobiert...habe die Geburtstagsdaten mit StrSplit auseinandergenommen, damit ich das Geburtsjahr nicht mehr dabei habe und habe dann versucht diese Daten weiter zu verarbeiten, habe dass mit ticks versucht, usw. weiss nun nicht mehr weiter... ne Lösung gibts bestimmt...ich komm nur nicht drauf gruß mezzomix
D Deleted member 103 Guest Dec 22, 2009 #8 Hallo mezzomix, also mit StrSplit müsste es funktionieren. Du kannst aber, wenn es geht, dein Code hier hochladen und dann kann ich dir(vielleicht) weiter helfen. Ciao, Filippo
Hallo mezzomix, also mit StrSplit müsste es funktionieren. Du kannst aber, wenn es geht, dein Code hier hochladen und dann kann ich dir(vielleicht) weiter helfen. Ciao, Filippo
M mezzomix Member Licensed User Dec 22, 2009 #9 Hallo Filippo! Hier ein Beispielprogramm von mir View attachment 5047 gruß
D Deleted member 103 Guest Dec 22, 2009 #10 Hallo mezzomix, ich habe dir zwei versionen erstellt (ich hoffe ich habe verstanden was du meinst). Die erste ("gebfinden.sbp") habe so modifiziert ohne grosse änderungen. Bei der zweite ("gebfinden_neu.sbp") habe ich ein neue Kalender-Control hinzugefügt. Die Library http://www.b4x.com/forum/additional-libraries/1238-fgcontrols-library.html ist für das Kalender-Control notwendig. Ciao, Filippo Attachments gebfinden.jpg 21.6 KB · Views: 565 gebfinden_neu.sbp gebfinden_neu.sbp 2.7 KB · Views: 472
Hallo mezzomix, ich habe dir zwei versionen erstellt (ich hoffe ich habe verstanden was du meinst). Die erste ("gebfinden.sbp") habe so modifiziert ohne grosse änderungen. Bei der zweite ("gebfinden_neu.sbp") habe ich ein neue Kalender-Control hinzugefügt. Die Library http://www.b4x.com/forum/additional-libraries/1238-fgcontrols-library.html ist für das Kalender-Control notwendig. Ciao, Filippo
specci48 Well-Known Member Licensed User Longtime User Dec 22, 2009 #11 Hi mezzomix, irgendwie bin ich mir sicher, das Filippos Lösung nicht Deinem Wunsch entspricht. Sicherlich willst Du bei der Geburtstagsprüfung nur den Tag und den Monat berücksichtigen. Im Anhang findest Du meinen Vorschlag. Ich hoffe, die (Programm-)Kommentare helfen ein wenig beim Verständnis. Du solltest Dir übrigens auch noch überlegen, was das Programm machen soll, wenn mehrere Personen zu einem Datum (ohne Jahr natürlich) Geburtstag haben. Gruß specci48
Hi mezzomix, irgendwie bin ich mir sicher, das Filippos Lösung nicht Deinem Wunsch entspricht. Sicherlich willst Du bei der Geburtstagsprüfung nur den Tag und den Monat berücksichtigen. Im Anhang findest Du meinen Vorschlag. Ich hoffe, die (Programm-)Kommentare helfen ein wenig beim Verständnis. Du solltest Dir übrigens auch noch überlegen, was das Programm machen soll, wenn mehrere Personen zu einem Datum (ohne Jahr natürlich) Geburtstag haben. Gruß specci48
M mezzomix Member Licensed User Dec 22, 2009 #12 Hallo specci 48! Genau so meinte ich es!! Vielen Dank! @Filippo: Danke trotzdem!! -edit Code: Copy ticksOhneJahrAktuell = DateAdd(0, 0, DateM - 1 , DateD - 1) wieso muss man denn das -1 schreiben(weiter unten im Quelltext auch nochmal)?- gruß mezzomix Last edited: Dec 22, 2009
Hallo specci 48! Genau so meinte ich es!! Vielen Dank! @Filippo: Danke trotzdem!! -edit Code: Copy ticksOhneJahrAktuell = DateAdd(0, 0, DateM - 1 , DateD - 1) wieso muss man denn das -1 schreiben(weiter unten im Quelltext auch nochmal)?- gruß mezzomix
specci48 Well-Known Member Licensed User Longtime User Dec 23, 2009 #13 mezzomix said: -edit Code: Copy ticksOhneJahrAktuell = DateAdd(0, 0, DateM - 1 , DateD - 1) wieso muss man denn das -1 schreiben(weiter unten im Quelltext auch nochmal)?- Click to expand... Gut nachgefragt! In der Version, die ich hochgeladen habe, kann man die -1 tatsächlich an allen vier Stellen weglassen. Da Date(0) den 01.01.0001 ergibt, hatte ich zwischenzeitlich für Kontollausgaben den Tag und Monat jeweils um 1 verringert, damit beim Debug der korrekte Tag angezeigt wurde. Gruß specci48
mezzomix said: -edit Code: Copy ticksOhneJahrAktuell = DateAdd(0, 0, DateM - 1 , DateD - 1) wieso muss man denn das -1 schreiben(weiter unten im Quelltext auch nochmal)?- Click to expand... Gut nachgefragt! In der Version, die ich hochgeladen habe, kann man die -1 tatsächlich an allen vier Stellen weglassen. Da Date(0) den 01.01.0001 ergibt, hatte ich zwischenzeitlich für Kontollausgaben den Tag und Monat jeweils um 1 verringert, damit beim Debug der korrekte Tag angezeigt wurde. Gruß specci48
M mezzomix Member Licensed User Dec 24, 2009 #14 Hallo specci48! Ich bin noch immer dabei diesen COde zu verstehen. Habe ihn schon debuggt und dabei die Werte angeschaut. Folgendes ist mir noch unklar: Code: Copy ' als Startwert der nächste Geburtstag ohne Jahr (maximal 1 Jahr in der Zukunft) ticksNaechsterGeburtstagOhneJahr = DateAdd(Now, 1, 0, 0) Warum steht einmal in der Anmerkung "...nächste Geburtstag ohne Jahr.." ? Das verwirrt mich etwas. Verstehe dass nicht ganz. Die andere Sache wäre in der nächsten Zeile warum Du da DateAdd(Now ...nimmst, der Wert wird ja in jedem Fall im ersten Durchlauf der Schleife wieder überschrieben, oder?. Warum muss am Anfang dieser Wert drinne stehen? Frohe Weihnachten allen gruß mezzomix Last edited: Dec 24, 2009
Hallo specci48! Ich bin noch immer dabei diesen COde zu verstehen. Habe ihn schon debuggt und dabei die Werte angeschaut. Folgendes ist mir noch unklar: Code: Copy ' als Startwert der nächste Geburtstag ohne Jahr (maximal 1 Jahr in der Zukunft) ticksNaechsterGeburtstagOhneJahr = DateAdd(Now, 1, 0, 0) Warum steht einmal in der Anmerkung "...nächste Geburtstag ohne Jahr.." ? Das verwirrt mich etwas. Verstehe dass nicht ganz. Die andere Sache wäre in der nächsten Zeile warum Du da DateAdd(Now ...nimmst, der Wert wird ja in jedem Fall im ersten Durchlauf der Schleife wieder überschrieben, oder?. Warum muss am Anfang dieser Wert drinne stehen? Frohe Weihnachten allen gruß mezzomix
klaus Expert Licensed User Longtime User Dec 25, 2009 #15 Hallo mezzomix. Ich hab mal in specci's Programmvorschlag reingeschaut. Der Kommentar Code: Copy ' als Startwert der nächste Geburtstag ohne Jahr (maximal 1 Jahr in der Zukunft) kann verwirrend sein, stimmt aber mit dem Variablenamen über ein. Nur der Erste Wert stimmt nicht über ein, weil ja das Now drin ist. Der Erste Wert von ticksNaechsterGeburtstagOhneJahr muss aber höher sein als der Erste Wert von ticksOhneJahrNeu damit der Erste Eintrag in der Tabelle richtig behandelt wird. Das ist eben mit ticksNaechsterGeburtstagOhneJahr = DateAdd(Now, 1, 0, 0) gewährleistet. Beste Grüsse und ein schönes Weihnachtsfest.
Hallo mezzomix. Ich hab mal in specci's Programmvorschlag reingeschaut. Der Kommentar Code: Copy ' als Startwert der nächste Geburtstag ohne Jahr (maximal 1 Jahr in der Zukunft) kann verwirrend sein, stimmt aber mit dem Variablenamen über ein. Nur der Erste Wert stimmt nicht über ein, weil ja das Now drin ist. Der Erste Wert von ticksNaechsterGeburtstagOhneJahr muss aber höher sein als der Erste Wert von ticksOhneJahrNeu damit der Erste Eintrag in der Tabelle richtig behandelt wird. Das ist eben mit ticksNaechsterGeburtstagOhneJahr = DateAdd(Now, 1, 0, 0) gewährleistet. Beste Grüsse und ein schönes Weihnachtsfest.
M mezzomix Member Licensed User Dec 25, 2009 #16 Danke Klaus! Verstehe nun den Code. Habe den Code nun schon soweit verändert , dass wenn jemand am aktuellen Tag Geburtstag hat , dass dann eine extra MsgBox erscheint mit "Max Mustermann: Heute" Jetzt versuche ich gerade das Programm so zu verändern, dass erkannt wird wenn mehrere an einem Tag Geburtstag haben. Das habe ich auch schon zum Teil, da hackt es aber schon wieder. Bekomme es nicht hin innerhalb einer Schleife, ein Array von Schleifendurchgang zu Schleifendurchgang mit Daten zu füttern. Also ich meine in Durchlauf 1 soll ein Array(0) mit einem bestimmten Wert angelegt werden. In durchlauf 2 soll Array(1) einen Wert zugewiesen bekommen, usw. Dass Array soll unendlich lang sein. Habe das so versucht: globals dim xgeb(0) as string z.B. sub button_click for i = 0 to irgendwas xgeb(ArrayLen(xgeb()) = irgendeinwertvoneinervariable next Da meckert er immer über die Zeile xgeb. Ich bekomme es nicht hin xgeb(0),xgeb(1),.... nacheinander(von Scheifendurchgang u Schleifendurchgang) einen Wert zuzuweisen.:sign0013: gruß und Frohe Weihnachten mezzomix Last edited: Dec 25, 2009
Danke Klaus! Verstehe nun den Code. Habe den Code nun schon soweit verändert , dass wenn jemand am aktuellen Tag Geburtstag hat , dass dann eine extra MsgBox erscheint mit "Max Mustermann: Heute" Jetzt versuche ich gerade das Programm so zu verändern, dass erkannt wird wenn mehrere an einem Tag Geburtstag haben. Das habe ich auch schon zum Teil, da hackt es aber schon wieder. Bekomme es nicht hin innerhalb einer Schleife, ein Array von Schleifendurchgang zu Schleifendurchgang mit Daten zu füttern. Also ich meine in Durchlauf 1 soll ein Array(0) mit einem bestimmten Wert angelegt werden. In durchlauf 2 soll Array(1) einen Wert zugewiesen bekommen, usw. Dass Array soll unendlich lang sein. Habe das so versucht: globals dim xgeb(0) as string z.B. sub button_click for i = 0 to irgendwas xgeb(ArrayLen(xgeb()) = irgendeinwertvoneinervariable next Da meckert er immer über die Zeile xgeb. Ich bekomme es nicht hin xgeb(0),xgeb(1),.... nacheinander(von Scheifendurchgang u Schleifendurchgang) einen Wert zuzuweisen.:sign0013: gruß und Frohe Weihnachten mezzomix
klaus Expert Licensed User Longtime User Dec 25, 2009 #17 Hallo mezzomix, So wie Du das machen willst geht es leider nicht. Dim xgeb(0) As string heisst dass die Anzahl der Werte 0 ist. Du hast 2 Möglichkeiten: Dim xgeb(100) As string und For i=0 To Anzahl xgeb(i)="A" Next Oder mit einem ArrayList Control den Du auch 'xgeb' nennen kannst. Und dann mit: xgeb.Clear ' xgeb lehren falls nötig For i=0 To Anzahl xgeb.Add("A") Next die ArrayList füllen. Ich würde Dir die zweite Lösung bevorzugen. Der ArrayList Control hat Alle Möglichkeiten zum Verwalten. Item, Add, Insert, Remove, RemoveAt usw. Beste Grüsse.
Hallo mezzomix, So wie Du das machen willst geht es leider nicht. Dim xgeb(0) As string heisst dass die Anzahl der Werte 0 ist. Du hast 2 Möglichkeiten: Dim xgeb(100) As string und For i=0 To Anzahl xgeb(i)="A" Next Oder mit einem ArrayList Control den Du auch 'xgeb' nennen kannst. Und dann mit: xgeb.Clear ' xgeb lehren falls nötig For i=0 To Anzahl xgeb.Add("A") Next die ArrayList füllen. Ich würde Dir die zweite Lösung bevorzugen. Der ArrayList Control hat Alle Möglichkeiten zum Verwalten. Item, Add, Insert, Remove, RemoveAt usw. Beste Grüsse.
M mezzomix Member Licensed User Dec 26, 2009 #18 Danke! Habe nun eine Lösung gefunden , wie ich eine extra MsgBox erscheinen lasse wenn die Person am aktuellen Datum Geburtstag hat und wenn mehrere Personen an einem Tag Geb. haben. Will euch die Datei mal zeigen. Ist aber wahrscheinlich nicht die optimale Lösung, aber es scheint zu funktionieren View attachment 5072 gruß mezzomix
Danke! Habe nun eine Lösung gefunden , wie ich eine extra MsgBox erscheinen lasse wenn die Person am aktuellen Datum Geburtstag hat und wenn mehrere Personen an einem Tag Geb. haben. Will euch die Datei mal zeigen. Ist aber wahrscheinlich nicht die optimale Lösung, aber es scheint zu funktionieren View attachment 5072 gruß mezzomix