AGB  ·  Datenschutz  ·  Impressum  







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

Hochzählen Verständnisfrage

Ein Thema von gaisser · begonnen am 3. Jul 2008 · letzter Beitrag vom 3. Jul 2008
Antwort Antwort
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#1

Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 15:44
Hallo,

ich bin am verzeifeln.

will eigentlich nur einen Wert erhöhen, bekomme aber immer Probleme wenn der letzte Char eine 9 oder ein z ist...
Ich poste mal meine function, vielleicht findet einer den Fehler gleich
Delphi-Quellcode:
function Zaehlen(s:String):String;
var C:Char;
Zahl:String;
i:integer;
begin
 if s<>'then begin
  i:=Length(s);
  c:=S[i];
    //Wenn noch ein hinzugezählt werden kann
    if c in ['0'..'8','A'..'Y','a'..'y'] then begin
    inc(c);
    Zahl:=C;
    result:=copy(S,1,i-1)+ C;
    end;
     //Wenn Z oder 0
     while c in ['9'] do begin
      if c in ['9'] then
       begin
       Zahl:=Zahl+'0';
       end;
       dec(i);
       c:=S[i];
       result:=copy(s,1,i)+Zahl;
     end;

      while c in ['Z','z'] do begin
      if c in ['Z'] then begin
      zahl:=Zahl+'A';
      end;
      if c in ['z'] then begin
      zahl:=Zahl+'a';
      end;
       dec(i);
       c:=S[i];
       result:=copy(s,1,i)+Zahl;
     end;
 end;
end;
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 15:51
Hallo,

Könntest du vielleicht ein wenig beschreiben, was genau die Funktion machen sollte?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#3

Re: Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 15:55
Mir schaut das ganze etwas komisch aus. Was willst du mit den Quelltext bezwecken? Versuch mal folgende Tabelle für mich zu füllen, damit ich versteh, was du meinst
Code:
Eingabe          Ausgabe        Erwartete Ausgabe
---------------------------------------------------
'123'            '124'          ???
'abc'            'abd'          ???
'xyz'            'xya'          ???
'789'            '780'          ???
[Edit]Da war wohl wer schneller [/Edit]
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 15:57
OK,

ich habe ein EditFeld indem ein Wert immer um eins hochzezähöt werden soll:

Bsp:

1009 soll 1010 sein
100Z soll 101A sein

Bei den Werten 0 bis 8 und a bis y klappt das, nur nicht wenn er den vorherigen Wert auch noch zählen soll.

Es sollte einfach Alphanumerisch gezählt werden können....
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 16:01
Ich würde den String zunächst in eine Zahl wandeln, inkrementieren und dann formatiert ausgeben.

[edit] Ach nee, da käme ein anderes Ergebnis heraus, sry. [/edit]
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
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 16:03
Häh

wie meinste das?????
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#7

Re: Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 16:07
Inkrementiere jedes s[i] separat, wenn s[1] überlauft, pack eine 1 bzw ein a vor den String.

Gruß Gammatester
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#8

Re: Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 16:09
Ich hab mal den Quelltext umgeschrieben, so dass deine beiden Beispiele funktionieren. Ob alles wirklich so funktioniert, wie du es willst, weiß ich nicht:
Delphi-Quellcode:
function Zaehlen(s: string): string;
var c: char;
    i: integer;
begin
  if s <> 'then
  begin
    i := length(s);
    c := s[i];
    if c in ['0'..'8', 'A'..'Y', 'a'..'y'] then
    begin
      inc(c);
      s[i] := c;
    end;

    c := s[i];
    while c in ['9', 'z', 'Z'] do
    begin
      if c in ['z', 'Z'] then
        s[i] := 'A'
      else
        s[i] := '0';
      dec(i);
      if i < 1 then
         break; // da musst du noch etwas rumbasteln, dass auch '999' usw. funktioniert
      c := s[i];
      if not (c in ['9', 'z', 'Z']) then
      begin
        inc(c);
        s[i] := c;
        break;
      end;
    end;
  end;
  result := s;
end;
(PS: deine Codeformatierung ist nicht ganz optimal ^^, musste es erst umformatieren um die Funktionalität zu erkennen)
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Hochzählen Verständnisfrage

  Alt 3. Jul 2008, 16:13
Wow danke... haste mir schwer weitergeholfen
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  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:37 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