AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Im Text nach Zeichen suchen und die dann zählen - aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Im Text nach Zeichen suchen und die dann zählen - aber wie?

Ein Thema von plam · begonnen am 29. Jun 2006 · letzter Beitrag vom 11. Dez 2006
Antwort Antwort
Seite 2 von 3     12 3      
plam

Registriert seit: 29. Jun 2006
8 Beiträge
 
#11

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 13:25
AAH. OOH. OK. Sehr schön. XD Danke. Ich versuch jetzt echt mal das Struktogram zu malen und dann scan ich das und dann wär ich euch sehr verbunden, wenn ich das nochmal angucken würdet.

Danke nochmal. Ihr seid echt meine Rettung. XD
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 13:31
Dann will ich mal ein wenig erklären:

Zunächst mal hast Du den String, den Du in einer FOR-Schleife durchlaufen musst: vom ersten Buchstaben bis zum letzten.
In einem String haben die einzelnen Buchstaben "Chars" alle einen Index in dem String, Beispiel:
wenn s der String ist, bekommst Du mit s[1] den ersten Buchstabe und mit s[2] den zweiten Buchstaben.
Also bekommst Du mit s[i] (wenn i ein Integer-Wert, eine Zahl, ist) den Char (Buchstabe) an der Position i in Deinem String.
Mit Length(s) bekommst Du die Anzahl der Buchstaben in dem String, also die Länge des Strings.

Wir brauchen jetzt eine FOR-Schleife, die den String von Anfang bis Ende durchläuft und den Char mit dem gesuchten Char an der aktuellen Stelle (Position i) vergleicht.
Dein String ist jetzt nicht s sondern eben Edit1.Text, der gesuchte Char steht in Edit2.Text.

Delphi-Quellcode:
var i, j: Integer; //i als Variable für die Position im String (also für die FOR-Schleife)
                   //j zählt die Chars, also wie oft Edit2.Text in Edit1.Text vorkommt
begin
  j := 0; //zunächst kommt unser Buchstabe 0 Mal vor

  for i := 1 {Startwert von i: erster Buchstabe} to Length(Edit1.Text) {Endwert von i: letzer Buchstabe = Länge des Strings} do
  
    if Edit1.Text[i] {Buchstabe an der Position i} = Edit2.Text[1] {erste Buchstabe in Edit2.Text = unser gesuchter Char} then
      j := j + 1; //j wird um 1 erhöht
end;
//Edit:
Jetzt hab ich sowas schönen geschrieben und ihr ward doch schneller...
Wo bleibt der rote Kasten ???
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
plam

Registriert seit: 29. Jun 2006
8 Beiträge
 
#13

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 14:10
@Martin K

Das war sehr einleuchtend, DANKE DANKE DANKE!




http://i64.photobucket.com/albums/h1...rplam/info.jpg
Ich hoff es ist halbwegs lesbar und nicht allzu falsch, ich hab ewig keine Struktogramme mehr gemalt. Verbessert mich bitte wenn was falsch is (auch von der Form her und so, weil sonst muss ich mir wieder was vom Lehrer anhören.). : D


Das Problem hab ich an sich hab ich jetzt kapiert und fühl mich auch im Stande, das morgen so zu erklären. XD (Ich glaub ich mach hier grad voll aus 'ner Mücke 'nen Elefanten, ahem.)
  Mit Zitat antworten Zitat
Klaus01
Online

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

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 14:23
Hallo,

char[1] gibt es nicht, ein Zeichen ist nur ein Zeichen

Delphi-Quellcode:
var
  c: char;

  if string[i] = c then ...
Zum schönen Struktogramme malen -> bei Google mal nach winGesy suchen

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
plam

Registriert seit: 29. Jun 2006
8 Beiträge
 
#15

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 14:40
Also so?

http://i64.photobucket.com/albums/h1...lam/strgr2.jpg
Oder bei der Eingabe besser c: char?




(winGesy geht bei mir irgendwie nicht, irks.)
  Mit Zitat antworten Zitat
Klaus01
Online

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

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 14:43
wenn Du noch dabei schreibst das c Dein gesuchter Buchstabe ist.
Dann sieht es o.k. aus.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 14:43
Ja, genau einfach nur:

if String[i] = Char

Das mit dem [1] gibt es nur bei Strings, hatte das mit dem Edit2.Text[1] so gemacht, weil Edit2.Text ein String ist und Du ihn als Char zum Vergleichen umwandeln musst. Also der erste Buchstabe aus dem String Edit2.Text: -> Edit2.Text[1].
Das wiederum liefert einen Char zurück.
Ein Char hat immer die Länge 1, als praktisch ein String der nur ein Zeichen hat.

Hoffe ich habe mich verständlich ausgedrückt:
Einfach das [1] bei Char weglassen, da Du bei dem Char natürlich immer den ersten Buchstaben bekommst (Char hat ja nur einen Buchstaben insgesamt!).

//zum neuen Posting:
Ja, so.
Da Du Deinen String aber nicht extra deklariert hast (s: String) brauchst Du es bei dem Char auch nicht.
Entweder machst Du es einheitlich (so würde ich es machen), dann schreibst Du einfach s anstatt String und c anstatt Char,
oder Du schreibst überall nur den Variabeltyp, also String aber auch Char anstatt c.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
plam

Registriert seit: 29. Jun 2006
8 Beiträge
 
#18

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 14:51
OK, gut. : D Dann mach ich das mit dem char und dem string noch so. Aber ansonsten geht's so, ja?

(Meine Güte, ich bin so glücklich. Ihr wisst garnicht wie sehr ihr mir den Tag gerettet habt.)
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 14:55
Zitat von plam:
OK, gut. : D Dann mach ich das mit dem char und dem string noch so. Aber ansonsten geht's so, ja?
Ehrlich gesagt, ich hab keine Ahnung wie ein korrektes Struktogramm aussehen muss (war das einzigste was ich in meiner mündlichen Prüfung nicht wusste ), aber ich würde mir so eine deklaration irgendwo hin schreiben:

> s: eingegebener String
> c: gesuchter Char
> j: Anzahl gesuchter Char ("wie oft dieser in s vorkommt")
> i: Zählvariable

j := 0 usw.

Jo, sonst sieht es eigentlich ganz gut aus, würde ich mal tippen.
(Nur noch das "String" durch s ersetzen...)
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#20

Re: Im Text nach Zeichen suchen und die dann zählen - aber w

  Alt 29. Jun 2006, 15:45
jetzt kommt wieder mein berüchtigtes "Ich hab da mal was vorbereitet"

Naja, is schon länger her: http://www.delphipraxis.net/internal...ct.php?t=54673

Der Sourcecode wird dir da aber nicht viel helfen, das Buchstabenzählen sieht so aus:

Delphi-Quellcode:
//--------Rechenschleife---------//
for i := 1 to Len do
 begin
  if (i mod 1000) = 0 then application.ProcessMessages; //kann manrauslassen
  if getAsyncKeyState(VK_ESCAPE)<0 then break; // bei "ESC" wird abgebrochen
  c:=s[i]; //ähm... genau, c ist ein char, s ist der text, c wird also der ite buchstabe im text zugewiesen
  PBSum.Stepit; //PBSum ist die gesamtanzahl Buchstaben, die hier zu prüfzwecken inkrementiert wird
  bars[ord(c)].StepIt; //bars sind progressbars, die damit inkrementiert werden. man kann es genauso mit einem array of integer machen.
 end;
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:41 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