AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

got longint expected ansistring

Ein Thema von Nisbo · begonnen am 10. Mär 2005 · letzter Beitrag vom 11. Mär 2005
Antwort Antwort
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#1

got longint expected ansistring

  Alt 10. Mär 2005, 19:48
Habe bereits bei Google gesucht aber da gibt es nur 1 Seite und die ist französisch
http://www.developpez.net/forums/viewtopic.php?p=413796

glaube ich zumindest

Was ich vorhabe ist die UNIX TimeStamp aus einem Datum zu berechen, habe dazu mir eine Anleitung aus einem anderen Board geschnappt (weiß nicht ob link hier erlaubt ist) und die ein wenig umgebastelt und verkürzt so das dies rauskam

Delphi-Quellcode:
procedure TForm3.Button2Click(Sender: TObject);
var
   Result: integer;
   iTime: integer;
   HumanStamp: tDateTime;
   hh, mm, ss, ms: word;

const
  FirstOf1970 = 25569; // [s] seit 30.12.1899 bis 01.01.1970 (WinZeit -> UnixZeit)
  OneDay = 86400; // in [s]
  OneHour = 3600; // in [s]
  OneMinute = 60; // in [s]


begin
  //HumanStamp := '01.01.2005';
  Result := 0;
  DecodeTime(HumanStamp, hh, mm, ss, ms);

  { Tage seit 1.1.1970 in Sekunden }

  iTime := (Trunc(HumanStamp) - FirstOf1970) * OneDay;

  { Stunden und Minuten und Sekunden aufaddieren }

  iTime := iTime + (hh * OneHour);
  iTime := iTime + (mm * OneMinute);
  iTime := iTime + ss;

  if iTime < 0 then iTime := 0;

  Result := iTime;
  Edit1.Text := iTime;
  // ShowMessage ('UNIX-Datum: ' + iTime +' ');

end;
wenn ich das jetzt so mache dann bekomme ich diesen Fehler:
got longint expected ansistring

ich weiß da ist noch so einiges falsch, aber möchte wenigstens erstmal nen ergebnis bekommen
und jetzt lacht mich aus, in der anleitung war das ganze eine Funktion, leider weiß ich nicht wie man sowas einbaut (ja ja gelächter ) deshalb habe ich das etwas umgebaut
Jens
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: got longint expected ansistring

  Alt 10. Mär 2005, 19:51
Dir ist schon klar, dass TEdit.Text keine numerische Property ist?
Und da du nicht mit VB arbeitest sondern mit einer halbwges typ sicheren Sprache, musst du natürlich erst den Integer in einen String umwandeln.
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#3

Re: got longint expected ansistring

  Alt 11. Mär 2005, 06:50
Jo und so lautet die Lösung für alle die danach mal suchen:

Result := inttostr(iTime);
Jens
  Mit Zitat antworten Zitat
Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#4

Re: got longint expected ansistring

  Alt 11. Mär 2005, 07:08
Delphi-Quellcode:
function GetUnixTime(Zeit: TDateTime): LongInt;
const UnixDateDelta = 25569;
begin
  // Liefert die Zeit als Unix TimeStamp zurück...
  Result := Round(((Zeit-UnixDateDelta)*24*60*60)-7200.5);
end;
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat
Nisbo

Registriert seit: 10. Mär 2005
191 Beiträge
 
Delphi 5 Standard
 
#5

Re: got longint expected ansistring

  Alt 11. Mär 2005, 07:48
mmm da wären wir wieder beim thema Function

habe es jetzt so gelöst und funktioniert Prima:

Delphi-Quellcode:
procedure TForm3.Button2Click(Sender: TObject);
var
   Ausgabe : string;
   Eingabe : string;
   Zeitverschiebung : integer;
   iTime : integer;
   NormalesDatum : tDateTime;
   hh, mm, ss, ms : word;

const
  FirstOf1970 = 25569; // in Sekunden seit 30.12.1899 bis 01.01.1970 (WinZeit -> UnixZeit)
  OneDay = 86400; // Sekunden
  OneHour = 3600; // Sekunden
  OneMinute = 60; // Sekunden

begin
   if Edit1.Text = 'then Edit1.Text := FormatDateTime('dd.mm.yyyy', now);
   if Edit2.Text = 'then Edit2.Text := '00:00';
   if Edit3.Text = 'then Edit3.Text := '0';

   Eingabe := Edit1.Text + ' ' + Edit2.Text; // Datum und Zeit zusammenfuegen
   NormalesDatum := StrToDateTime(Eingabe); // Eingabe in Datumsformat umwandeln
   Zeitverschiebung := strtoint(Edit3.Text) * OneHour; // Zeitverschiebung berechnen

   DecodeTime(NormalesDatum, hh, mm, ss, ms);

   iTime := (Trunc(NormalesDatum) - FirstOf1970) * OneDay; // Tage seit 1.1.1970 in Sekunden abziehen
   iTime := iTime + (hh * OneHour); // Stunden
   iTime := iTime + (mm * OneMinute); // Minuten
   iTime := iTime + ss; // Sekunden
   iTime := iTime + Zeitverschiebung; // Zeitverschiebung beachten

   if iTime < 0 then iTime := 0; // nur positive Ausgabe

   Ausgabe := inttostr(iTime);
   Edit4.Text := Ausgabe;
end;
so schaut das ganze in der Eingabe aus:
Miniaturansicht angehängter Grafiken
unixdatum_571.gif  
Jens
  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 16:41 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