AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Aus Wert ein Datum konventieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aus Wert ein Datum konventieren

Ein Thema von ByTheTime · begonnen am 11. Dez 2011 · letzter Beitrag vom 12. Dez 2011
Antwort Antwort
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 20:28
Hallo,
ich zerbeche mir schon seit einiger Zeit den Kopf an einem Problem. Da mein Programm noch mit der guten, alten BDE arbeitet, jedoch nicht jeder der mein Prog hat, einfach so die Werte verarbeiten kann, habe ich ein kleines Tool geschreiben, das jeden Datensatz in Excel schreibt (somit kann jeder damit arbeiten, etc.). Aber in der DB sind wirklich ssseeehhhrrrr viele Datensätze, wenn ich das Prog durchlaufen lasse, dauert es fast 15min (!), bis alles in Excel ist. Es nervt jedoch etwas, wenn mann immer wieder warten muss, obwohl sich vllt. nur ein paar Datensätze ändern. Daher lese ich aus der vorhandenen Exceldatei den letzten Datensatz aus (Datum und Zeit). Mit Table1.FindKey möchte ich jetzt mein Prog auf den nächsten, in der Exceldatei noch nicht vorhandenen Datensatz springen lassen. Das funktioniert mit dem Datum bis jetzt. Allerdings hat Excel die doofe Gewohnheit, den bekommenen String (von einem Datensatz das Datum) in ein Benutzerdefiniertes Datum umzuwandeln (aus '10:27:41' wird '10:27:41 AM'. Wenn ich nun mein Prog die Exceldatei auslesen lasse (nach Datum und Zeit), findet er korrekt das Datum, die Zeit allerdings als Wert (0,4.....). Und hier tritt nun der Fehler auf, das er es in der DB nicht findet (wie auch?!). Aber wie soll ich den erhaltenen Wert nun umwandeln? StrToDate etc. funzt nicht!
Lukas

Geändert von ByTheTime (11. Dez 2011 um 20:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#2

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 20:38
Wenn ich richtig verstanden habe, brauchst du nur die ersten 8 Zeichen aus dem dem Datumstring (s).
Den Rest wirst du mit

delete(s,9,3) los.
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824

Geändert von Wolfgang Mix (11. Dez 2011 um 20:43 Uhr)
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 20:57
Das mit dem Delete funktioniert zwar, aber ich hänge immer noch ein bisschen.

Delphi-Quellcode:
//Bisheriger Code:

 SDatum := VarToStr(Excel.Cells[e, 1].Value);
 SZeit := VarToStr(Excel.Cells[e, 2].Value);

 delete(SZeit, 1, 2);
 delete(SZeit, 9, 7);
 StrToDate(SZeit);
 //ShowMessage(SDatum + ', ' + SZeit);

 Table1.FindKey([SDatum, SZeit])
Lukas
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#4

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 20:57
Beim Date hängt es, da der Wert, den ich bekomme kein gültiges Datum ist.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 21:26
Was steht denn letztendlich in SZeit drin?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Question_mark

Registriert seit: 20. Okt 2004
54 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 22:00
Hallo,

Zitat von "ByTheTime:
Beim Date hängt es, da der Wert, den ich bekomme kein gültiges Datum ist.
Mal eine Frage : Handelt es sich bei Deinem OS um Windows 7 mit Multilanguage User Interface (MUI), so wie es von Microsoft für einige Großkunden abgefüllt wird ?

Gruß

Question_mark
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#7

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 22:06
In Excel geht 11:24:35 rein: Excel.Cells[i + c, 2].Value := Table1Zeit.Value; In Excel steht das dann als 11:24:35 PM.
Aus Excel heraus mit SZeit := (Excel.Cells[e, 2].Value); kommt es als: 0,435295749386401(nur Bsp.)

Nach dem Delete:
Delphi-Quellcode:
 delete(SZeit, 1, 2);
 delete(SZeit, 9, 7);
steht dann da: 43529574

@Questin_mark: Gute frage, kann ich mir das iwo anschauen? Habe Win7 HP 64bit. Denke nicht, das MUI dabei ist. Sollten nur Englisch und Deutsch sein.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#8

AW: Aus Wert ein Datum konventieren

  Alt 12. Dez 2011, 22:35
Vielleicht hilft dies weiter

http://www.delphipraxis.net/142643-p...it-delphi.html
Angehängte Dateien
Dateityp: zip Zeitstempel.zip (205,5 KB, 3x aufgerufen)
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  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 06:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz