AGB  ·  Datenschutz  ·  Impressum  







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

formatierter progress string

Ein Thema von stephan007 · begonnen am 20. Jun 2007 · letzter Beitrag vom 25. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#1

formatierter progress string

  Alt 20. Jun 2007, 15:45
hallo!

ich hab zwar eine lösung für das folgende problem, nur gefällt sie mir irgendwie nicht sonderlich.

ich habe eine anzeige vom format "xxx/yyy"
wobei ersterer der aktuelle stand ist und zweiterer der gesamtwert, soll heißen z.b. 10/200

nun will ich diesen eintrag laufend verändern, dass dann z.b. 20/200, 21/200 usw. steht.

momentan würde ich den string einfach parsen und den eintrag vor dem "/" holen. denn fortschritt dazufügen und wieder neu schreiben.
soweit so gut, es kann hier aber auch sein, dass z.b. 20KB/200KB steht. also muss ich zunächst obiges machen (also alles bis "/" holen) und dann den erhaltenen (teil-)string hernehmen und aus diesem den numerischen wert rausfiltern und die einheit merken. dann wert ändern und string wieder aufbauen.

geht das nicht einfach und schöner? mir kommt das irgendwie ziemlich umständlich vor, aber geht das überhaupt einfach bzw. anders?

stephan.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: formatierter progress string

  Alt 20. Jun 2007, 15:50
Ich würde das mit Format lösen.Text := Format('%d/%d',[aktuell,total]);
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
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#3

Re: formatierter progress string

  Alt 21. Jun 2007, 07:36
stimmt eigentlich, allerdings werde ich beim einlesen (d.h. um zu schauen, was jetzt drinnen steht um es zu verändern) des textes nicht um ein abparesen des strings herumkommen, außer ich speichere mir die werte global, was nicht unbedingt eine tolle lösung ist, alles global zu halten.

oder wie seht ihr das?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: formatierter progress string

  Alt 21. Jun 2007, 07:57
Wieso willst Du unbedingt einen String parsen? Wenn Du das machst wie in meinem Beispiel hast Du die benötigten Werte als Integer vorliegen und kannst diese auswerten.
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
Nuclear-Ping
(Gast)

n/a Beiträge
 
#5

Re: formatierter progress string

  Alt 21. Jun 2007, 08:47
Wenn du dem String schon Werte zuweisen kannst, weißt du doch, wo er gerade von wieviel ist. Wozu noch parsen?

Ausserdem gibt es Klassenglobal und Totalglobal.

Global in einer Klasse wäre z.B.
Delphi-Quellcode:
type
  TForm1 = class (TForm)
    {...}
  private
    MeineVariable: Integer;
    MeinString: String;
    MeinIrgendwas: Irgendwas;
  public
    {...}
  end;

{...}

implementation

{...}

procedure TForm1.Button1Click (Sender: TObject);
begin
  MeineVariable := 1;
  {...}
end;
Global im Programm (bzw. in der Unit) wäre
Delphi-Quellcode:
type
  TForm1 = class (TForm)
    {...}
  private
    {...}
  public
    {...}
  end;

{...}

var
  MeineVariable: Integer;
  MeinString: String;
  MeinIrgendwas: Irgendwas;

implementation

{...}

procedure TForm1.Button1Click (Sender: TObject);
begin
  MeineVariable := 1;
  {...}
end;
Wobei erstere Variante zu bevorzugen wäre. Natürlich kannst du auch die Werte aus dem private nach public schieben, wenn du aus anderen Klassen darauf zugreifen möchtest.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: formatierter progress string

  Alt 21. Jun 2007, 09:39
Ihr immer mit Eurem ...
Zitat von stephan007:
... was nicht unbedingt eine tolle lösung ist, alles global zu halten.
Besser als einen String zu parsen. Ob nun Global oder nicht, ist eh 'ne (globale ) Glaubensfrage.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#7

Re: formatierter progress string

  Alt 21. Jun 2007, 15:38
ok überzeugt.
aber zumindest beim ersten mal muss ich leider parsen, weil ich seitens des benutzers eine eingabe des maximalwertes zulassen muss, d.h. ich kann z.b. bekommen "1" (also nur zahlen, ein oder mehrstellig) oder "1MB" (also mit einheit, wobei zwischen der zahl und der einheit auch ein leerzeichen sein kann aber nicht muss).

der erste schritt ist mir schon klar, da frag ich auf numerisch ab, mit trystrtoint (oder wie genau die heißt) aber für den rest muss ich zunächst solange parsen, bis ich kein numerisches zeichen mehr bekomme und dann den rest hernehmen und überprüfen, ob der keine numerischen zeichen mehr enthält.
und die ergebnisse werden dann in den integer maxvalue und den string einheit gespeichert.
  Mit Zitat antworten Zitat
Klaus01

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

Re: formatierter progress string

  Alt 21. Jun 2007, 15:46
Zitat von stephan007:
aber zumindest beim ersten mal muss ich leider parsen, weil ich seitens des benutzers eine eingabe des maximalwertes zulassen muss, d.h. ich kann z.b. bekommen "1" (also nur zahlen, ein oder mehrstellig) oder "1MB" (also mit einheit, wobei zwischen der zahl und der einheit auch ein leerzeichen sein kann aber nicht muss).
Um das zu umgehen wieso nutzt Du nicht eine Editfeld für die Werte und eine
ComboBox für die Einheiten.
Nur so eine Idee.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#9

Re: formatierter progress string

  Alt 22. Jun 2007, 09:10
weil ich diesen wert als übergabeparameter einer funktion bekomme und ihn daher leider nur auf diesem wege bearbeiten kann.
wenn ichs von vornherein trennen könnte, wäre natürlich einfach, geht nur leider nicht.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#10

Re: formatierter progress string

  Alt 22. Jun 2007, 17:25
Wenn du sicherstellen kannst, dass am Anfang eine Zahl steht und erst am Ende Buchstaben (also 1MB und nicht MB1 oder sowas), kannst du das ganz einfach in einer Schleife lösen: Erstes auftauchen eines Buchstabens feststellen und alles was dahinter ist löschen. "Parsen" brauchst du deswegen immernoch nicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:06 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