AGB  ·  Datenschutz  ·  Impressum  







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

StringToDate Problem

Ein Thema von gee21 · begonnen am 6. Mai 2017 · letzter Beitrag vom 7. Mai 2017
Antwort Antwort
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: StringToDate Problem

  Alt 6. Mai 2017, 11:41
Danke für die Hilfe. Hab mal was versucht.

Wäre es so ungefähr korrekt? Bei mir gehts zumindest. Aber bei mir gings ja bis jetzt auch immer. Kann es schlecht testen, oder?


Delphi-Quellcode:
 function IsDate(str: string): Boolean;
var
  dt: TDateTime;
  DateOne: TDate;
  LocalFormatSettings: TFormatSettings;
  s: string;
begin
  Result := True;
  try

     GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, LocalFormatSettings);
      LocalFormatSettings.DateSeparator := '.';
      s := FormatDateTime('dd.mm.yyyy', strtodate(str), LocalFormatSettings);

    dt := StrToDate(s);
  except
    Result := False;
  end;

  end;


Delphi-Quellcode:
    for I := 39 to 78 do begin

     s := server.Strings[i]; //Datum zB: 17.03.2017 aus der textdatei

      if isdate(s)=false then begin
         if server.Strings[i]='Nothing'=false then cat1.add(server.Strings[i]);
      end;

    end;
Robert
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#2

AW: StringToDate Problem

  Alt 6. Mai 2017, 11:58
Hi,

mal ein anderer Ansatz:
Wenn jede zweite Zeile ein Datum ist, dann kann man z.B. auch auf un-/geraden Index prüfen.

... if odd(i) then ...

oder gleich eine while-Schleife und einen Index mit Schrittweite 2
Gruß
Norman
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: StringToDate Problem

  Alt 6. Mai 2017, 12:12
Hi,

mal ein anderer Ansatz:
Wenn jede zweite Zeile ein Datum ist, dann kann man z.B. auch auf un-/geraden Index prüfen.

... if odd(i) then ...

oder gleich eine while-Schleife und einen Index mit Schrittweite 2

Lol. Ja ich machs einfach so Danke dir
Robert
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#4

AW: StringToDate Problem

  Alt 6. Mai 2017, 12:25
Noch ein anderer Ansatz: Wenn du die Textdatei eh selbst schreibst und das Format selbst definieren kannst, dann setze Datum und Name in dieselbe Zeile, getrennt durch ein Zeichen deiner Wahl - z.B. die Pipe | oder Sternchen * oder sowas, irgendetwas, das garantiert nicht im Namen und Datum vorkommen kann.

Der Ansatz geht natürlich davon aus, dass Datum und Name zueinander gehören.

Grüße
Dalai
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.653 Beiträge
 
Delphi 12 Athens
 
#5

AW: StringToDate Problem

  Alt 6. Mai 2017, 13:36


Delphi-Quellcode:
    for I := 39 to 78 do begin

     s := server.Strings[i]; //Datum zB: 17.03.2017 aus der textdatei

      if isdate(s)=false then begin
         if server.Strings[i]='Nothing'=false then cat1.add(server.Strings[i]);
      end;

    end;
Auch sollte nicht "=false" schreiben, sondern

Delphi-Quellcode:
    for I := 39 to 78 do begin

     s := server.Strings[i]; //Datum zB: 17.03.2017 aus der textdatei

      if not isdate(s) then begin
         if server.Strings[i]='Nothing'=false then cat1.add(server.Strings[i]);
      end;

    end;
[/QUOTE]
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
985 Beiträge
 
Delphi 6 Professional
 
#6

AW: StringToDate Problem

  Alt 6. Mai 2017, 19:16
Hmm..

dann aber auch gleich statt


Delphi-Quellcode:
    for I := 39 to 78 do begin

     s := server.Strings[i]; //Datum zB: 17.03.2017 aus der textdatei

      if not isdate(s) then begin
         if server.Strings[i]='Nothing'=false then cat1.add(server.Strings[i]);
      end;

    end;

das 2. =false auch entfernen

Delphi-Quellcode:
    for I := 39 to 78 do begin

     s := server.Strings[i]; //Datum zB: 17.03.2017 aus der textdatei

      if not isdate(s) then begin
         if not(server.Strings[i]='Nothing') then cat1.add(server.Strings[i]);
      end;

    end;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: StringToDate Problem

  Alt 7. Mai 2017, 09:55
Das Problem würde nicht existieren, würde das sog. ISO-Datum (YYYY-MM-DD) verwendet. Das ist allerdings eine Norm aus dem letzten Jahrhundert.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.476 Beiträge
 
Delphi 12 Athens
 
#8

AW: StringToDate Problem

  Alt 7. Mai 2017, 10:23
Aus dem letzten Jahrtausend, aber sie wird vermutlich auch noch die nächsten 7982 Jahre funktionieren, oder bis zur nächsten Zombieapokalypse.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
607 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: StringToDate Problem

  Alt 7. Mai 2017, 11:01
Wenn man die Textdatei selbst erstellt und diese dann selbst verarbeitet, kann man doch jedes x-beliebige Format nehmen?

FormatDateTime(meinDatum,'YYYYMMDD')

und dann entsprechend "auseinandernehmen', Zeichen 1-4=Datum, 5 und 6 = Monat, 7 und 8 = Tag

und sortieren kann man so ein Format auch wunderbar und dann ist egal welche internationalen Datumsformate da existieren und ggf. verändert werden.

Ciao
Stefan
  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:17 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-2025 by Thomas Breitkreuz