Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für CodeGear Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Delphi für Win32
Hochzählen Verständnisfrage
Ein Delphi (Win32)-Thema von gaisser.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> Object-Pascal / Delphi-Language
Seite 1 von 1   [ 9 Beiträge ]  
 
 Autor 
 Nachricht 
 
gaisser #1|Beitrag #911896Verfasst am: 03.07.2008, 15:44      Titel: Hochzählen Verständnisfrage Antworten mit Zitat
Mitglied
Alter: 33
Status: offline
Beiträge: 28
angemeldet: 07.09.2003
Wohnort: Dotternhausen
Delphi 7 Enterprise

Sprache: Delphi (Win32)

Hallo,

ich bin am verzeifeln. ouch!

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 Embarassed
Delphi-Quellcode: zusammenfalten | markieren
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;

Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
toms #2|Beitrag #911902Verfasst am: 03.07.2008, 15:51      Titel: Re: Hochzählen Verständnisfrage Antworten mit Zitat
CodeLib-Manager
Alter: 31
Status: offline
Beiträge: 4.451
angemeldet: 10.06.2002
Delphi 6 Professional

Hallo,

Könntest du vielleicht ein wenig beschreiben, was genau die Funktion machen sollte?
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
littleDave #3|Beitrag #911905Verfasst am: 03.07.2008, 15:55      Titel: Re: Hochzählen Verständnisfrage Antworten mit Zitat
aktives Mitglied
Alter: 24
Beiträge: 473
angemeldet: 27.04.2006
Wohnort: München
Delphi 7 Professional

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: markieren
Eingabe           Ausgabe         Erwartete Ausgabe
---------------------------------------------------
'123'             '124'           ???
'abc'             'abd'           ???
'xyz'             'xya'           ???
'789'             '780'           ???

[Edit]Da war wohl wer schneller Wink Cheers![/Edit]

Delphi-Quellcode: markieren
<!-- #1-->in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0

 Zuletzt bearbeitet von littleDave am 03.07.2008, 15:56, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
gaisser #4|Beitrag #911906Verfasst am: 03.07.2008, 15:57      Titel: Re: Hochzählen Verständnisfrage Antworten mit Zitat
Mitglied
Alter: 33
Status: offline
Beiträge: 28
angemeldet: 07.09.2003
Wohnort: Dotternhausen
Delphi 7 Enterprise

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....

Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
DeddyH #5|Beitrag #911908Verfasst am: 03.07.2008, 16:01      Titel: Re: Hochzählen Verständnisfrage Antworten mit Zitat
"Rüsselmops" ;-)
Alter: 43
Status: offline
Beiträge: 14.010
angemeldet: 17.09.2006
Wohnort: Barchfeld
Delphi 2007 Professional

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]

Wenn Dein Programm nicht macht, was es soll, nenn es einfach "Version 1.0" Mr. Green

Idee := Brain.Activate(self);

 Zuletzt bearbeitet von DeddyH am 03.07.2008, 16:02, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
gaisser #6|Beitrag #911909Verfasst am: 03.07.2008, 16:03      Titel: Re: Hochzählen Verständnisfrage Antworten mit Zitat
Mitglied
Alter: 33
Status: offline
Beiträge: 28
angemeldet: 07.09.2003
Wohnort: Dotternhausen
Delphi 7 Enterprise

Häh Grübelnd...

wie meinste das?????

Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
gammatester #7|Beitrag #911911Verfasst am: 03.07.2008, 16:07      Titel: Re: Hochzählen Verständnisfrage Antworten mit Zitat
aktives Mitglied
Status: offline
Beiträge: 426
angemeldet: 06.12.2005


Inkrementiere jedes s[i] separat, wenn s[1] überlauft, pack eine 1 bzw ein a vor den String.

Gruß Gammatester
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
littleDave #8|Beitrag #911915Verfasst am: 03.07.2008, 16:09      Titel: Re: Hochzählen Verständnisfrage Antworten mit Zitat
aktives Mitglied
Alter: 24
Beiträge: 473
angemeldet: 27.04.2006
Wohnort: München
Delphi 7 Professional

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: zusammenfalten | markieren
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)

Delphi-Quellcode: markieren
<!-- #1-->in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0

 Zuletzt bearbeitet von littleDave am 03.07.2008, 16:12, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
gaisser #9|Beitrag #911918Verfasst am: 03.07.2008, 16:13      Titel: Re: Hochzählen Verständnisfrage Antworten mit Zitat
Mitglied
Alter: 33
Status: offline
Beiträge: 28
angemeldet: 07.09.2003
Wohnort: Dotternhausen
Delphi 7 Enterprise

Wow danke... haste mir schwer weitergeholfen Thumbs up!

Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> Object-Pascal / Delphi-Language Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 9 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2010 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen