AGB  ·  Datenschutz  ·  Impressum  







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

Zeichenfolge in Strings ersetzen

Ein Thema von Nalincah · begonnen am 5. Jul 2004 · letzter Beitrag vom 9. Jul 2004
 
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#1

Zeichenfolge in Strings ersetzen

  Alt 5. Jul 2004, 15:46
Erstmal: Ich will hier nicht wissen wie ich best. Zeichen in einem String gegen andere ersetzen kann, sondern wie ich logisch dabei vorgehe.

Ich will in einem String z.B. "#MM" mit "07" (Aktueller Monat) oder "#JJJJ" mit "2004" (Jahr). Das ist auch an sich kein Problem.

Ich will aber auch #[M+1] ersetzen. Da soll dann statt "07" "08" stehen (Akt. Monat + 1). Wie kann ich da am besten nach suchen?

Momentan sieht mein Quellcode so aus (Auszug):
Delphi-Quellcode:
function FormatText(OldText:string):string;
  var
    sText:string;
    Year,Month,Day: Word;
    KW,Quartal:Integer;
    FormatText:string;
  begin
    sText := OldText;
    // Ermittlung Tag, Monat und Jahr
    DecodeDate(Date,Year,Month,Day);
    // Tag
    ...
    // Jahr
    while Pos('#JJJJ',sText) <> 0 do
    begin
      sText := StringReplace(sText,'#JJJJ',IntToStr(Year),[rfReplaceAll, rfIgnoreCase])
    end;
    while Pos('#JJ',sText) <> 0 do
    begin
      sText := StringReplace(sText,'#JJ',Copy(IntToStr(Year),3,2),[rfReplaceAll, rfIgnoreCase])
    end;
    // Kalenderwoche
    while Pos('#KW',sText) <> 0 do
    begin
      sText := StringReplace(sText,'#KW',IntToStr(WeekOfTheYear(Date)),[rfReplaceAll, rfIgnoreCase])
    end;
    // Quartal
    while Pos('#Q',sText) <> 0 do
    begin
      case Month of
        1..3: sText := StringReplace(sText,'#Q','1',[rfReplaceAll, rfIgnoreCase]);
        4..6: sText := StringReplace(sText,'#Q','2',[rfReplaceAll, rfIgnoreCase]);
        7..9: sText := StringReplace(sText,'#Q','3',[rfReplaceAll, rfIgnoreCase]);
        10..12: sText := StringReplace(sText,'#Q','4',[rfReplaceAll, rfIgnoreCase]);
      end;
    end;
    Result := sText;
  end;
Da sind jetzt aber nur die Standardsachen drin ohne "+1"

Der Text:
Zitat:
#M
#MM
#ML
#JJ
#JJJJ
#D
#DD
#DL
#KW
#Q

#[M+1]
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
 


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 19:18 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