AGB  ·  Datenschutz  ·  Impressum  







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

Einzelne Buchstaben zählen und auflisten...

Ein Thema von bob_aus_der_flasche · begonnen am 13. Jan 2008 · letzter Beitrag vom 15. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
bob_aus_der_flasche

Registriert seit: 13. Jan 2008
15 Beiträge
 
#1

Einzelne Buchstaben zählen und auflisten...

  Alt 13. Jan 2008, 21:10
hey leute hab hier ein echtes prob.

wir müssen für die schule ein sehr unsinniges prog machen und keiner weiss wie es geht.

es soll folgendes leisten:

1. Oben eine listbox in die per knopfdruck ein text aus einer datei geladen wird.
2. unten eine listbox, in der die anzahl von jedem einzelenen buchstaben per knopfdruck aufgelistet wird.
Beispiel:
A: 123 mal! D: 111 mal!
B: 456 mal! E: 222 mal!
C: 789 mal! F: 333 mal! usw....

also den ersten punkt bekomm ich noch alleine hin^^

beim 2. hapert es ein wenig

BITTE HELFT MIR !!!!

p.s. es sollen nur die buchstaben von A-Z aufgelistet werden, nicht irgendwelche anderen zeichen zusätzlich
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 13. Jan 2008, 22:10
Wie würdest Du das denn händisch lösen? Angenommen, Du hast einfach nur den String "Text". Nun nimmst Du Dir einen Zettel, schaust Dir den ersten Buchstaben an und schreibst ein "t" und einen Strich dahinter. Nun kommt das "e". Hast Du noch nicht, also schreibst Du "e" und auch einen Strich dahinter. Jetzt dasselbe mit "x". Zum Schluss kommt nochmal "t", also hinter das "t" (bereits vorhanden, ganz oben) noch einen Strich. Das musst Du nur noch in Quellcode umsetzen und hast eine funktionierende Lösung (wobei man sich sicherlich noch Gedanken zur Geschwindigkeitsoptimierung machen könnte).
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 SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 13. Jan 2008, 22:24
Handelt es sich wirklich um die Programmiersprache C++? Oder verwendet ihr vielleicht doch Delphi in der Schule?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 13. Jan 2008, 22:48
Das verwunderte mich gerade auch ein wenig.

Willkommen in der DP
Frank Dumont
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 14. Jan 2008, 15:49
also ich würde an die Sache wie folgt rangehen:
Es gibt nur 256 "herkömliche" Zeichen. Dementsprechend brauchst du maximal ein Array von 256 Elementen.
Also einfach ein Array mit 256 Int-Werten anlegen und dann jedes Zeichen durchgehen, es auf einen Ordinalwert casten und diesen als Arrayindex nutzen. Den Wert im Array an dieser Stelle dann einfach um 1 erhöhen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 14. Jan 2008, 17:36
Delphi-Quellcode:
type
  TCharCounterTable = array[Char] of Cardinal;

function CountChars(const Text: String): TCharCounterTable;
var
  I: Integer;
begin
  FillChar(Result, SizeOf(Result), 0);
  for I := 1 to Length(Text) do
    Inc(Result[Text[I]]);
end;

procedure Test;
var
  Table: TCharCounterTable;
  C: Char;
begin
  Table := CountChars('Testtext');
  for C := #0 to #255 do
    if Table[C] > 0 then
      WriteLn(C, ' = ', Table[C]:4);
end;
TypCast per Ord() ist unnötig, der Index des Arrays kann als Char deklariert werden.

Gruß Hagen
  Mit Zitat antworten Zitat
bob_aus_der_flasche

Registriert seit: 13. Jan 2008
15 Beiträge
 
#7

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 14. Jan 2008, 18:39
also Hagen, zu deiner lösung

wie genau werden da die sachen aus einer listbox gesucht und in eine andere ausgegeben ???

ich versteht nich genau wie dein prog funktioniert xDD

greetz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 14. Jan 2008, 18:46
Zitat von negaH:
Delphi-Quellcode:
procedure Test;
var
  Table: TCharCounterTable;
  C: Char;
begin
  Table := CountChars('Testtext');
  for C := #0 to #255 do
    if Table[C] > 0 then
      WriteLn(C, ' = ', Table[C]:4);
end;
Testtext ist der zu untersuchende String, den kannst Du durch ListBox.Items.Text ersetzen. Und statt dem Writeln kannst Du die Ergebnisse jeweils als Zeile in der 2. ListBox ausgeben.
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
bob_aus_der_flasche

Registriert seit: 13. Jan 2008
15 Beiträge
 
#9

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 14. Jan 2008, 21:27
also so sieht mein prog jetz aus:

Delphi-Quellcode:
procedure TForm1.Test;
var
  Table: TCharCounterTable;
  C: Char;
begin
  Table := CountChars(listbox1.items.text);
  for C := #0 to #255 do
    if Table[C] > 0 then
      listbox2.items.add(C , ' = {fehler} , Table[C]: {fehler} 4);
end;
aber vor dem 2. Komma kommt ein fehler. "Zu viele Parameter"
und nach dem doppelpunkt vor der 4 kommt auch einer. " ')' erwartet aber ':' gefunden "

was is da falsch
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Einzelne Buchstaben zählen und auflisten...

  Alt 14. Jan 2008, 21:42
WriteLn kann beliebig viele Parameter unterschiedlichen Typs übergeben kriegen, Add allerdings nur einen String.
Du musst C, dein ' = ' usw mit + in eine String zusammenpacken.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  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 05:14 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