AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zahlen in einem String finden

Ein Thema von ATS3788 · begonnen am 22. Nov 2012 · letzter Beitrag vom 23. Nov 2012
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: Zahlen in einem String finden

  Alt 23. Nov 2012, 07:01
Was versteht der Fragesteller eigentlich unter 'ELEGANT'?
Wo ist der Unterschied zu 'elegant' (klein geschrieben)
Meint er 'Kompakt'?

Delphi-Quellcode:
for c in s do
  if IsDigit(c) Then
    result.add(ord(c)-48);
Wäre jetzt das "ELEGANT"este, was mir einfällt.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Zahlen in einem String finden

  Alt 23. Nov 2012, 07:57
Ich muss beim Schreiben anscheinend eine Wolldecke im Mund haben

Bislang habe ich noch nicht gesehen, was rein- und rauskommen soll. Nur irgendwelchen Code, wo die Typbezeichnungen etwas anderes suggerieren als der Code wirklich liefern kann (ich beziehe mich auf den TE).

Wenn ich als Eingabeparameter einen String habe und die Funktion CountNumber heißt, dann würde ich als Ergebnis ein Integer erwarten der mir die Anzahl der Zahlen in dem String liefert.
Diese Funktion liefert aber ein NumArray (ein Array von Zahlen) zurück.

Ok, es sollen also Zahlen zurückgegeben werden.

Schaue ich mir den Code an, dann stelle ich fest, dass
  • Das Ausgabearray genausoviele Einträge hat, wie der String Stellen hat, aber es sind nicht unbedingt alle Elemente befüllt
  • obwohl mir Zahlen in einem String suggeriert werden bekomme ich aber nur die einzelnen Ziffern aus dem string als Zahl geliefert
Code:
a35s4 => (3,5,4,0,0)
Irgendwie hätte ich jetzt das erwartet
Code:
a35s4 => (35,4)
Evtl. kann mir mal jemand (der TE) eine Kerze anzünden und mich erleuchten
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zahlen in einem String finden

  Alt 23. Nov 2012, 08:15
Anhand seines Beispielcodes gehe ich bislang davon aus, dass er ein Array aus Ziffern befüllen möchte.
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 Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Zahlen in einem String finden

  Alt 23. Nov 2012, 08:17
Anhand seines Beispielcodes gehe ich bislang davon aus, dass er ein Array aus Ziffern befüllen möchte.
Das passt aber nicht zur Fragestellung (Zahlen in einem String finden)
TNumArray passt zur Fragestellung, aber das darin enthaltene Ergebnis wiederum in keinster Weise

Es kann doch nicht zuviel verlangt sein, wenn man eine kleine Textzeile als Erklärung erwartet.
Die Vorlage habe ich ja gegeben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (23. Nov 2012 um 08:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Zahlen in einem String finden

  Alt 23. Nov 2012, 10:16
ich denke er möchte so etwas machen
Delphi-Quellcode:
myarray = array [0..255] of integer;

fillchar(myarray,sizeof(myarray),#0);
for i:=1 to length(mystring) do
  inc(myarray[byte(mystring[i]),1)];

for i:=byte('0') to i:=byte('9') do
  writeln(char(i)+' '+inttostr(myarray[i]);
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#6

AW: Zahlen in einem String finden

  Alt 23. Nov 2012, 10:31
Nja, bei Unicode macht der Code eventuell nicht ganz, was er soll. (aber zumindestens gibt es keine Zugriffsverletzungen)

Aber am Sichersten ist hier nicht array[0..255] aka array[Byte] , sondern array[Char] , also ein Array mit Feldern für jeden Char-Wert.
Und man kommt beim Char auch ohne Konvertierung aus, da es ja schon Chars sind.
Delphi-Quellcode:
myarray = array[Char] of Integer;

FillChar(myarray, SizeOf(myarray), 0);
for i := 1 to Length(mystring) do
  Inc(myarray[mystring[i]]);
// mit Forin sieht es auch ganz nett aus (wenn das Delphi sowas schon kann)
for C in mystring do
  Inc(myarray[C]);

for C := '0to '9do
  WriteLn(C, ' ', myarray[C]); // man kann die Typumwandlungen vom Write/Writeln auch benutzen, wenn man mag

bzw. nur das, was man braucht
Delphi-Quellcode:
myarray = array['0'..'9'] of Integer;

FillChar(myarray, SizeOf(myarray), 0);
for i := 1 to Length(mystring) do
  if mystring[i] in ['0'..'9'] then
    Inc(myarray[mystring[i]]);
for C in mystring do
  if CharInset(mystring[i], ['0'..'9']) then
    Inc(myarray[C]);

for C := '0to '9do // for C := Low(myarray) to High(myarray) do
  WriteLn(C, ' ', myarray[C]);
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Nov 2012 um 10:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Zahlen in einem String finden

  Alt 23. Nov 2012, 10:39
Jetzt sei mal nicht so pingelig, beachte bitte, daß ich ein Array of Integer und nicht of Byte genutzt habe.
Ernsthaft, wie groß wird eigentlich dieses array[char] of byte ? Mein alter TI konnte damit nicht mehr umgehen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz