Dienstag, 24. August 2010

Feststellen der aktuellen Zeitzone / Discover the current time zone

Wenn wir mit Daten arbeiten, die nicht nur in einer einzigen Zeitzone erfaßt werden, dann können wir nicht direkt mit der Uhrzeit der jeweiligen Arbeitsstation arbeiten. Dies würde die Erfassungszeitpunkte ad absurdum führen.

In einem solchen Fall haben wir zwei Möglichkeiten. Ersten können wir die Zeitstempel vor dem Speichern entsprechend anpassen oder zweitens, wir führen einen Merker, der uns eine Nachberechnung der Zeitstempel ermöglicht.

Wie auch immer, wir müssen auf jeden Fall feststellen, wie die Uhrzeit in Bezug auf die Greenwich Mean Time (GMT) berechnet ist. Ein weiterer Aspekt dem wir Beachtung schenken müssen ist die Sommerzeit die u.a. in Mitteleuropa gilt. Hierdurch entsteht eine weitere Zeitverschiebung.

Im folgenden ein Codemuster, wie die entsprechenden Informationen aus Windows herausgekitzelt werden können. Benötigt wird übrigens die kernel32.dll.

* // Deklaration der Arbeitsvariablen                                        
LOCAL   lcTimeZoneDB     as String, ;
        liTimeZoneFlag   as Integer, ;
        lcTimeZoneDesc   as String, ;
        liTimeZoneOffset as Integer, ;
        liGMTOffset      as Integer, ;
        liSUTOffset      as Integer

* // Deklaration der Zeitzonen API Funktion und abrufen der Informationen    
#DEFINE TIME_ZONE_SIZE  172
DECLARE Integer GetTimeZoneInformation IN kernel32 String @lpTimeZoneInformation
lcTimeZoneDB             = REPLICATE( CHR( 0 ) , TIME_ZONE_SIZE )
liTimeZoneFlag           = GetTimeZoneInformation( @lcTimeZoneDB )

* // Feststellen der Standard- und Sommerzeitabweichung                        
liGMTOffset              = CTOBIN( SUBSTR( lcTimeZoneDB ,   1 , 4 ) , [4RS] )
liSUTOffset              = CTOBIN( SUBSTR( lcTimeZoneDB , 169 , 4 ) , [4RS] )

* // Feststellen der Zeitzonenabweichungen                                    
IF liTimeZoneFlag = 2    && Sommerzeit Abweichung berücksichtigen            
    lcTimeZoneDesc       = STRTRAN( STRCONV( SUBSTR( lcTimeZoneDB , 89 , 64 ) , 6 ) , CHR( 0 ) , [])  
    liTimeZoneOffset     = ( liGMTOffset + liSUTOffset ) * 60
ELSE                     && Nur Standard GMT Zeit Abweichung                    
    lcTimeZoneDesc       = STRTRAN( STRCONV( SUBSTR( lcTimeZoneDB ,  5 , 64 ) , 6 ) , CHR( 0 ) , [])  
    liTimeZoneOffset     = liGMTOffset * 60
ENDIF 

* // Informationsausgabe im _screen                                            
CLEAR 
lcFont           = _screen.FontName
_screen.FontName = [Courier New]

?PADR([Zeitzone] , 25 , [ ] )
??TRANSFORM( liTimeZoneFlag ) + [ - ] + lcTimeZoneDesc
?PADR([Zeitverschiebung gesamt] , 25 , [ ] )
??[=] + TRANSFORM( ABS( liTimeZoneOffset ) ) + [ sek / ]
??[=] + TRANSFORM( INT( ABS( liTimeZoneOffset ) / 60) ) + [ min / ]
??[=] + TRANSFORM( INT( ABS( liTimeZoneOffset ) / 60 / 60) ) + [ std]
?PADR([GMT Verschiebung ] , 25 , [ ] )
??TRANSFORM( liGMTOffset ) + [ min]
?PADR([SOZ Verschiebung] , 25 , [ ] )
??TRANSFORM( liSUTOffset ) + [ min]
?PADR([MESZ] , 25 , [ ] )
??TIME()
?PADR([GMT] , 25 , [ ] )
??GETWORDNUM( CAST( DATETIME() + liTimeZoneOffset as C( 20 ) ) , 2 , [ ] )

_screen.FontName = lcFont

Donnerstag, 12. August 2010

Umzug der VFP-Runtime Installer / VFP-Runtime Installers have moved

wOOdy hat im internationalen Visual Foxpro Forum soeben  mitgeteilt, dass die seit Jahren von vielen genutzten Runtime Installer ab sofort direkt über die MSDN Seiten von Microsoft zur Verfügung stehen.

Hier geht es direkt zu seiner Mitteilung:

http://social.msdn.microsoft.com/Forums/de-DE/visualfoxprogeneral/thread/1f5e4714-72fa-4f33-bdcc-77d768f92d82

Montag, 9. August 2010

Parallele Prozessverarbeitung mit Visual Foxpro / Parallel processing in Visual Foxpro

Am Sonntag hat Joel Leach über sein aktuelles VFPX Projekt gebloggt in dem es um die parallele Verarbeitung von Prozessen unter VFP geht.
Sein Projekt mit dem Namen ParallelFox steht in der Beta Version auf VFPX ab sofort zum Download bereit.

Hier gehts direkt zu Joel's Blog:
http://weblogs.foxite.com/joel_leach/archive/2010/08/08/12986.aspx

Hier gehts zum Download auf VFPX:
http://vfpx.codeplex.com/wikipage?title=ParallelFox

Donnerstag, 5. August 2010

Mein Blog im neuen Gewand / A new look for my blog

Nein, der Browser hat keine Macke, der Bildschirm ist auch nicht kaputt, mit der Grafikkarte ist ebenfalls noch alles in Ordnung und auch die Brille muss nicht geputzt werden... ;-)

Ich konnte einfach nur das drei Jahre alte Design meines Blogs nicht mehr sehen. Im ersten Schritt habe ich jetzt ein etwas moderneres Design gewählt. Mal schauen, wann es mich in den Fingern juckt und ich damit anfange daran Änderungen vorzunehmen...

Dienstag, 3. August 2010

Visual Foxpro Blogs

Wie bereits im letzten Posting angekündigt gibt es nun eine Liste mit Blogs rund um Visual Foxpro.
Diese Liste ist bestimmt nicht vollzählig, und falls ich einen Eurer Meinung nach wichtigen Blog vergessen habe, dann teilt mir dies bitte per Kommentar mit. Ich werde die Liste dann umgehend erweitern.

Nicht alle dieser Blogs werden noch aktiv weiter geführt. Aber auch solche verfügen über ein interessantes Archiv mit Infos, Tipps, Tricks und Codebeispielen.
Einen kleinen Haken haben diese Blogs jedoch und dies war ursprünglich auch der Grund dafür, dass ich eben diesen Blog ins Leben gerufen habe: Sie sind alle auf Englisch...

Alan Stevens Cave Markings
http://netcave.org/default.aspx

Alex Feldstein
http://alexfeldstein.blogspot.com/

Andrew McNeill - AKSEL Solutions
http://akselsoft.blogspot.com/

Andrew McNeill - Learning Visual Foxpro
http://www.learningvisualfoxpro.com/

Andrew McNeill - The Fox Show podcast
http://www.thefoxshow.com/

Andy Kramek
http://weblogs.foxite.com/andykramek/

Atoutfox
http://www.atoutfox.org/rss.asp

Bernard Bout - May the Fox be with you
http://weblogs.foxite.com/bernardbout/

Bo Durban's Moxie data, inc
http://blog.moxiedata.com/

Boudewijn Lutgerink - BL's Blog
http://weblogs.foxite.com/boudewijnlutgerink/

Burkhard Stiller - Burkhard's VFP Blog
http://myvfpblog.blogspot.com/

Calvin Hsia's Weblog - thoughts from a professional developer
http://blogs.msdn.com/b/calvin_hsia/

Cathy Pountney
http://cathypountney.blogspot.com/

Cesar Chalom's VFP Imaging
http://weblogs.foxite.com/vfpimaging//

Christof Wollenhaupts Knowlbits
http://www.foxpert.com/knowlbits.htm

Christof Wollenhaupts GUINEU
http://guineu-blog.blogspot.com/

Craig Berntson
http://www.craigberntson.com/blog/

Craig Boyd's SPSBlog
http://www.sweetpotatosoftware.com/SPSBlog/

Dave Crozier's Blog
http://www.replacement-software.co.uk/blog/

David Stevenson's Talking Fox
http://talkingfox.blogspot.com/

Deciacco Blog
http://deciacco.com/blog/

Del Lee's Blog
http://deltonlee.blogspot.com/

Doug Hennig
http://doughennig.blogspot.com/

Emerson Santon Reed
http://weblogs.foxite.com/emersonreed/

Eric den Doop
http://weblogs.foxite.com/ericdendoop/default.aspx

Eric Sink
http://www.ericsink.com/index.html

Frank Garzón
http://weblogs.foxite.com/fgarzonhz/

Frank Perez's Blog
http://www.pfsolutions-mi.com/blog/default.aspx

Herman Tan's Blog
http://hermantan.blogspot.com/

Jim Duffy -  Take Note
http://geekswithblogs.net/takenote/Default.aspx

Jochen Kirstätter (JOKI)
http://jochen.kirstaetter.name/

Joel Leach - Focused on Visual Foxpro and related technologies
http://weblogs.foxite.com/joel_leach/archive/2010/04/10/10747.aspx

Juan Calcagno's Blog
http://blog.jlcconsulting.com/

Jun Tangunan - Jun's Blog
http://www.junblogs.com/

Ken Cully
http://cully.biz/

Ken Levy's alter Blog auf MSDN
http://blogs.msdn.com/b/klevy/

Ken Levy's Blog - MashupX
http://mashupx.com/blog/

Kevin Ragsdale
http://kevinragsdale.net/

Kok Kiet's Blog - abpóut programming, Visual Foxpro, .net
http://weblogs.foxite.com/kkchan/

Lisa Slater Nichols - TechSpoken
http://spacefold.com/lisa/

Mark Gordon
http://dotbloat.blogspot.com/

Martin Pirringer's MYSQL Blog
http://pirringers.com/mysqlblog/

Matt Slay
http://therealmattslay.blogspot.com/

Nancy Folsom - Experiencing Life on the Verge
http://nancyfolsom.wordpress.com/

Paul Mrozowski's Blog - A day in the life (of a developer)
http://www.rcs-solutions.com/blog/

Randy Jean's Blog
http://randyjean.blogspot.com/

Rick Borup - fiat volpes
http://rickborup.blogspot.com/

Rick Schummer - Shedding Some Light
http://rickschummer.com/blog2/

Rick Strahl's Foxpro and Web Connection Web Log
http://www.west-wind.com/wconnect/weblog/

Ronald Ramirez Moran
http://weblogs.foxite.com/dlanorok/

Sergey Berezniker
http://www.berezniker.com/content/pages/visual-foxpro

Simon Arnold
http://weblogs.foxite.com/simonarnold/

Sjordan Djordjevic's Report Sculptor
http://weblogs.foxite.com/reportsculptor/

Steve Bodnar's Blog
http://www.geeksandgurus.com/blogs/sjb/

Stuart Dunkeld's Fox Weblog
http://weblogs.foxite.com/stuartdunkeld/

Tod McKenna - Tod means Fox
http://blog.todmeansfox.com/

Tom Meek's beginning visual foxpro tips
http://vfpstart.blogspot.com/

Toni Feltman - F1 Technologies Blog
http://f1technologies.blogspot.com/

Vassilis Aggelakos
http://weblogs.foxite.com/vassilisaggelakos/default.aspx

Visionpace Blog
http://blog.visionpace.com/

Walt Krzystek - VFP and More
http://wkrzystek.blogspot.com/

wOOdy auf MSDN
http://code.msdn.microsoft.com/FoxPro/Project/ProjectRss.aspx

wOOdy's Blog
http://woody-prolib.blogspot.com/

Yair Alan Griver (YAG)
http://blogs.msdn.com/b/yag/