AGB  ·  Datenschutz  ·  Impressum  







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

Dateinamen Parsen

Ein Thema von Ducksoul · begonnen am 10. Sep 2008 · letzter Beitrag vom 10. Sep 2008
Antwort Antwort
Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Dateinamen Parsen

  Alt 10. Sep 2008, 08:14
Guten Morgen,

ich habe einen Dateinamen in folgender Form:

Zitat:
Datum - Betreff - Nutzername
Nun brauche ich, wenn ich die Datei lade den Betreff. Wie kann ich den Dateinamen Parsen, dass ich sozusagen zwischen dem ersten '- ' und dem ' -' die Buchstaben in eine Variable bekomme? ^^

Viele Grüße,
Ducksoul
Franz
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Dateinamen Parsen

  Alt 10. Sep 2008, 08:17
Guten Morgen,

Du könntest Dir die Funktion pos in der Delphihilfe mal etwas näher anschauen.
Oder Du suchst hier im Forum mal nach explode, das zerlegt Dir den String in 3 Einzelteile.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: Dateinamen Parsen

  Alt 10. Sep 2008, 13:26
Ich sollte mir vielleicht mal angewöhnen erst ordentlich zu suchen und dann Fragen zu stellen. Mit Pos hatte ich es heute morgen schon versucht und nicht hinbekommen, aber jetzt hat es doch geklappt.

Hier meine Funktion:
(bei der iPosRight wird von rechts nach links geguckt, da ja evt. auch im Betreff ein '-' vorhanden sein kann)

Delphi-Quellcode:
(* Betreff aus Diktatnamen ermitteln *)
  function TFormular.GetBetreff(FileName: String): String;
    var iPos, iPosLeft, iPosRight, i: Integer;
    begin
        // Betreff Parsen
      Result := '';
      iPosLeft := PosEx('-', FileName, 1) + 2;

      i := Length(FileName);

      repeat
        iPosRight := PosEx('-', FileName, i);
        i := i-1; // i-- geht nich?
      until
        iPosRight <> 0;

      iPosRight := iPosRight - 1;

      Result := Copy(FileName, IPosLeft, IPosRight-IPosLeft);
    end; // function GetBetreff
Vielen Dank für den Gedankenstoß Klaus

Viele Grüße,
Franz
Franz
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Dateinamen Parsen

  Alt 10. Sep 2008, 14:03
Zitat von Ducksoul:
        i := i-1; // i-- geht nich?
Aber Dec(i) geht.
Uli Gerhardt
  Mit Zitat antworten Zitat
Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#5

Re: Dateinamen Parsen

  Alt 10. Sep 2008, 14:12
Ah, so geht das also in Delphi. *g* Danke
Franz
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

Re: Dateinamen Parsen

  Alt 10. Sep 2008, 16:27
kleine Anmerkung am Rande: Man sollte doch besser i := i-1 nehmen, da Dec bei manchen Prozessoren eine Performanceschwäche aufweist. (Ich hoffe doch sehr inständig, dass meine Daten noch nicht veraltet sind.)

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Dateinamen Parsen

  Alt 10. Sep 2008, 16:30
Ich habe es mal genau andersherum gehört. Allerdings soll der resultierende Assembler-Code bei beiden Varianten exakt identisch sein (hab ich aber noch nicht ausprobiert), so dass es letztendlich keine Rolle spielt, welche Variante man nimmt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Dateinamen Parsen

  Alt 10. Sep 2008, 17:27
Das ist für mich eher ne konzeptuelle Frage: Wenn ich i dekrementieren will, schreibe ich Dec(i) und nicht eine Monstrosität wie i := i-1.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#9

Re: Dateinamen Parsen

  Alt 10. Sep 2008, 17:34
Zitat von rollstuhlfahrer:
kleine Anmerkung am Rande: Man sollte doch besser i := i-1 nehmen, da Dec bei manchen Prozessoren eine Performanceschwäche aufweist. (Ich hoffe doch sehr inständig, dass meine Daten noch nicht veraltet sind.)

Bernhard
Auch wenn Dec() langsamer wäre: Es würde nur bei einem sehr großen String ins Gewicht Fallen.
In diesem Fall wäre es egal, was verwendet wird.
Thomas
  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 23:34 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