AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Problem bei umstellung einer funktion von Delphi in pascal
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei umstellung einer funktion von Delphi in pascal

Ein Thema von The_Tremendous · begonnen am 19. Jun 2005 · letzter Beitrag vom 19. Jun 2005
Antwort Antwort
The_Tremendous

Registriert seit: 10. Nov 2004
65 Beiträge
 
#1

Problem bei umstellung einer funktion von Delphi in pascal

  Alt 19. Jun 2005, 14:26
Habe das Problem, dass ich das in Delphi geschrieben habe, und es unter devpascal zum laufen bringen muss. Das wiederum hat aber keinen Datumstypen und ich habe keine Ahnung wie ich das umschrieben kann.

waäre cool, wenn ihr mir da helfen könntet.


Delphi-Quellcode:
function TFrmDatum.CheckString(EinleseDatum:string):TDate;
var
  i :integer;
  s1,s2:string;

begin
  if (pos('.',EinleseDatum)>0) and (pos(' ',EinleseDatum)<=0) then begin
    //wenn es 01.01.2005 ist
    result:=StrToDate(EinleseDatum);
  end;

  if (pos('-',EinleseDatum)>0) then begin
   //wenn es 2005-01-01 ist
   i:=pos('-',EinleseDatum);
   s1:=copy(EinleseDatum,1,i-1);
   Delete(EinleseDatum,1,i);
   i:=pos('-',EinleseDatum);
   s2:=copy(EinleseDatum,1,i-1);
   Delete(EinleseDatum,1,i);
   result:=StrToDate(EinleseDatum + '.' + s2 + '.' + s1);
  end;
 
  if (pos('.',EinleseDatum)>0) and (pos(' ',EinleseDatum)>0) then begin
    //wenn es 1. Januar 2005 ist
    i:=pos(' ',EinleseDatum);
    s1:=Copy(EinleseDatum,1,i-2);
    Delete(EinleseDatum,1,i);
    i:=pos(' ',EinleseDatum);
    s2:=Copy(EinleseDatum,1,i-1);
    Delete(EinleseDatum,1,i);

    if LowerCase(s2)='januarthen s2:='1';
    if LowerCase(s2)='februarthen s2:='2';
    if LowerCase(s2)='märzthen s2:='3';
    if LowerCase(s2)='aprilthen s2:='4';
    if LowerCase(s2)='maithen s2:='5';
    if LowerCase(s2)='junithen s2:='6';
    if LowerCase(s2)='julithen s2:='7';
    if LowerCase(s2)='augustthen s2:='8';
    if LowerCase(s2)='septemberthen s2:='9';
    if LowerCase(s2)='oktoberthen s2:='10';
    if LowerCase(s2)='novemberthen s2:='11';
    if LowerCase(s2)='dezemberthen s2:='12';

    result:=StrToDate(s1 + '.' + s2 + '.' + EinleseDatum);
  end;
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Problem bei umstellung einer funktion von Delphi in pasc

  Alt 19. Jun 2005, 17:23
Wenn du DevPascal auf FreePascal aufgesetzt hast, dann hast du einiges an Arbeit vor dir, da dort ein Datumskonzept nicht existiert (lt. Doku). Wenn du GNU Pascal verwendest, dann ist es leichter. Du musst dann nur den Rückgabewert von TDate auf TimeStamp ändern und die Funktion StrToDate() durch eine Prozedur ersetzen, die den TimeStamp-Record füllt.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von ltiefland
ltiefland

Registriert seit: 2. Mai 2005
Ort: Marl
63 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Problem bei umstellung einer funktion von Delphi in pasc

  Alt 19. Jun 2005, 17:46
Seit Ihr an einer DLL interessiert, die genau diese Funktionen (Umrechnen von TDateTime nach UnixTimeStamp und zurück) bietet? Ich hätte da so etwas zu bieten.
Lars Tiefland
Live Long And Prosper,
Lars Tiefland
admin at GBS, a Mod for STEF2, New mod versions and support!
Download Opera 8
  Mit Zitat antworten Zitat
The_Tremendous

Registriert seit: 10. Nov 2004
65 Beiträge
 
#4

Re: Problem bei umstellung einer funktion von Delphi in pasc

  Alt 19. Jun 2005, 18:17
@ ltiefland:
Das mit der Dll wäre ansich ne feine sache, aber da das Programm auch auf nem anderen Rechner laufen muss, und ich dort nichts installieren darf, wird mir das nichts bringen. Trotzdem vielen Dank.


@ marabu:
ich muss leider den Freepascal Compiler nehmen.


Vielleicht habt ihr ja noch andere ideen, wie man das machen könnte. Zum Beispiel mit Rekursion oder so.
  Mit Zitat antworten Zitat
Benutzerbild von ltiefland
ltiefland

Registriert seit: 2. Mai 2005
Ort: Marl
63 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Problem bei umstellung einer funktion von Delphi in pasc

  Alt 19. Jun 2005, 18:23
Zitat von The_Tremendous:
@ ltiefland:
Das mit der Dll wäre ansich ne feine sache, aber da das Programm auch auf nem anderen Rechner laufen muss, und ich dort nichts installieren darf, wird mir das nichts bringen. Trotzdem vielen Dank.
Und wie soll dann das Programm auf den Rechner kommen? Das wird ja auch "installiert", wenn es vielleicht ja nur kopiert wird. Die DLL könntest Du ja auch ins Programmverzeichnis packen. Die muß ja nicht ins Systemverzeichnis. In dem Moment wäre die DLL einfach nur eine weitere normale Datei. Ob Du nun eine ".exe" oder zusätzlich noch eine ".dll" lieferst, die sich BEIDE im gleichen Verzeichnis befinden, macht doch eigentlich keinen Unterschied, oder? Ich könnte Dir natürlich auch den Source geben und Du baust ihn in Dein Programm ein (mit Hinweis auf mich, versteht sich). Dann ist sogar die DLL überflüssig.
Lars Tiefland
Live Long And Prosper,
Lars Tiefland
admin at GBS, a Mod for STEF2, New mod versions and support!
Download Opera 8
  Mit Zitat antworten Zitat
The_Tremendous

Registriert seit: 10. Nov 2004
65 Beiträge
 
#6

Re: Problem bei umstellung einer funktion von Delphi in pasc

  Alt 19. Jun 2005, 19:04
Naja ausprobieren kann ich sie ja mal.


Gruß, the-tremendous
  Mit Zitat antworten Zitat
Benutzerbild von ltiefland
ltiefland

Registriert seit: 2. Mai 2005
Ort: Marl
63 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Problem bei umstellung einer funktion von Delphi in pasc

  Alt 19. Jun 2005, 19:10
Hier, bitte. Eine kleine Doku ist mit dabei. Sollte eigentlich nicht schwer sein die Funktionen einzubinden. In Delphi würde man es so machen:

Delphi-Quellcode:
function timestamp(Start: TDateTime):Int64; external 'datetime.dll';
function datum(tstamp:Int64):ShortString; external 'datetime.dll';
Für die Funktion "delphi_dat" sähe es so aus:
function delphi_dat(tstamp:Int64):TDateTime; external 'datetime.dll'; Sollte es Int64 bei Dir nicht geben, dann verwende einfach Integer! Das sollte auch groß genug sein.

TDateTime entspricht in Delphi übrigens einem Double Wert. Du solltest also statt TDateTime auch Double verwenden können.
Angehängte Dateien
Dateityp: zip datetime_130.zip (48,7 KB, 3x aufgerufen)
Lars Tiefland
Live Long And Prosper,
Lars Tiefland
admin at GBS, a Mod for STEF2, New mod versions and support!
Download Opera 8
  Mit Zitat antworten Zitat
The_Tremendous

Registriert seit: 10. Nov 2004
65 Beiträge
 
#8

Re: Problem bei umstellung einer funktion von Delphi in pasc

  Alt 19. Jun 2005, 19:19
ok, vielen Dank
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz