Entwickler-Ecke

Open Source Units - [Unitveröffentlichung] QuellcodeToDateTime


IhopeonlyReader - Sa 01.06.13 20:12
Titel: [Unitveröffentlichung] QuellcodeToDateTime
Guten Tag,
ich veröffentlich hier eine Unit, die
- den Quellcode einer Internetseite lesen kann
- In einem Quellcode ein Datum/Uhrzeit finden kann

die Funktionen sehen so aus

Delphi-Quelltext
1:
2:
3:
4:
Function GibQuellcode( Von: String ): String;
Function QuellcodeToDateTimeS( const Quellcode: String ): String;                       overload//Format = 'dd.mm.yyyy hh:nn:ss'
Function QuellcodeToDateTimeS( const Quellcode: Stringconst Format: String ): Stringoverload;
Function QuellcodeToDateTime( const Quellcode: String ): TDateTime;


--vorausgesetzt im Code der Seite ist folgendes erwähnt: "New Date(", dazwischen ein Date und danach ")"

HTML-Dokument
1:
2:
3:
4:
new Date(<?php echo date('y,n,j,G,i,s'); ?>)
<!-- Der Befehl liefert beim Anfordern des HTML-Dokuments vom Internetbrowser die Serverzeit 
Beispiel: 01.06.2013 19:02:03 sieht im überlieftern Dokument so aus: new Date(13,6,1,19,26,49)  
-->

--oder der Code der Seite besteht NUR aus der Zeile ( Date z.B. 13,5,6,13,12,49)

HTML-Dokument
1:
<?php echo date('y,n,j,G,i,s'); ?>                    




Benötigt werden die Indy Komponenten ( alle verwendete Units: SysUtils, IdHTTP, IdTCPClient )

Zu beachten:
wie am obigen Beispiel zu sehen ist wird beim Jahr NICHT das ganze Jahr sondern nur die letzten beiden Ziffern übermittelt...
Um es zu einem 4 Stelligen Jahr zu machen habe ich 2000 addiert.
Deshalb muss ALLE 100 Jahre (2100, 2200 ...) folgende Zeile aktualisiert werden

Delphi-Quelltext
1:
 Jahr := StrToInt( Copy(Erg, 1, Pos(',', Erg)-1) ) + 2000;                    


Falls keine Uhrzeit/ Datum zu finden ist, liefert die Funktion
- QuellcodeToDateTimeS: einen leeren String zurück (egal ob mit oder ohne Format)
- QuellcodeToDateTime: das TDateTime "0" also das Datum 30.12.1899 00:00:00


Delete - Sa 01.06.13 21:28

- Nachträglich durch die Entwickler-Ecke gelöscht -


IhopeonlyReader - Sa 01.06.13 21:46

Danke :)
Nutzen für Drittanwender: z.B. zur Synchronization von irgendwas ;) (auf verschiedenen Computern)...
aber eigentlich gilt es als Hilfe für Programmierer um nicht die lokale Computerzeit zu nutzen (gibt ab und zu mal Probleme ;) )

zu GibQuellcode:
Ja, sie ruft nur IdHttp.get auf :D aber: wenn man eine IdHttp-Komponente auf die Form zieht, bindet er automatisch mehrere Units ein und diese lassen sich auch nicht einfach so "entfernen"....
Somit ist es als "Ergänzung" zu QuellcodeToDateTime gedacht ;)
Aber wie ich den Quellcode sonst kriege, damit werde ich mich gerne noch beschäftigen :)

Zitat:
QuellcodeToDateTimeS klingt interessant, nur liefert es mir immer einen leeren string zurück, auch wenn ich es auf die Url dieses Topics anwende.
Du kannst dir denken, was mir QuellcodeToDateTime liefern würde


Zitat:
--vorausgesetzt im Code der Seite ist folgendes erwähnt:
(siehe erster Post)
und

HTML-Dokument
1:
 new Date(                    

kommt nirgends auf dieser Seite vor :(
Auf dieser Seite wird ein String zum Post abgespeichert (mein erster Post: Sa 01.06.13 21:28 ) soetwas findet meine Funktion (noch nicht)



Also demnächst:
- Quellcode ohne Indy bekommen
- Auch Strings (die ein Datum / Uhrzeit angeben) zurückliefern


Delete - Sa 01.06.13 22:07

- Nachträglich durch die Entwickler-Ecke gelöscht -


jaenicke - Sa 01.06.13 22:08

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
Ja, sie ruft nur IdHttp.get auf :D aber: wenn man eine IdHttp-Komponente auf die Form zieht, bindet er automatisch mehrere Units ein und diese lassen sich auch nicht einfach so "entfernen"....
Ich hoffe dir ist klar, dass die Units so oder so in dein Programm eingebunden werden, da die in der Unit IdHttp ohnehin verwendet werden.

Zur Zeitfunktion:
Dafür gibt es NTP. Da kannst du dir z.B. mit TIdTime die Zeit von einem der vielen NTP Server weltweit holen.


IhopeonlyReader - Sa 01.06.13 22:14

Zitat:

[von euch:]
-1 Datenbanken
-2 HTML- RTF- Wandler
-3 Taschenrechner- Erweiterungen (Funktionen aufstellen können, Ableiten, Integrieren)
-4 Mandelbrotmengen
-5 Erzeugung von hyperbolischen Parkettierungen (nach M.C. Escher)
-6 Kodierung von Daten (Huffman)
-7 Darstellung unscharfer Mengen (Fuzzy-Logik)

[von mir:]
- Kartenspielsammlung (MauMau, 31/Schwimmen, BlackJack) (ggf. erweiterbar mit: Bauernskat, Doppelkopf...)
- Account (ohne Datenbank) mit einem abgewandelten TBinaryTree (TTernaryTree) nach dem ASCII-Code der einzelnen Chars (Zeichen des Strings) ;)

ich glaube ich habe erstmal ein paar Übungsaufgaben ;)

@jaenicke: , wenn ich eine IDHTTP-komponente auf die Form ziehe werden:

Delphi-Quelltext
1:
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP                    

eingebunden, benötigt wird aber nur IdHTTP


jaenicke - Sa 01.06.13 23:15

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
@jaenicke: , wenn ich eine IDHTTP-komponente auf die Form ziehe werden:

Delphi-Quelltext
1:
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP                    

eingebunden, benötigt wird aber nur IdHTTP
Benötigt werden die von deinem Programm alle. Nur dass du es in deiner Unit nicht siehst, weil du nur die eine Unit einbindest, die dann wiederum die anderen einbindet.


IhopeonlyReader - Sa 01.06.13 23:18

ok, dennoch ist es übersichtlicher :D
Und wie gesagt: ich werde mich (nach dem Hinweis von Frühlingsrolle) mal dran machen, dass ohne Indy hinzukriegen