AGB  ·  Datenschutz  ·  Impressum  







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

Procedure in Procedure aufrufen klappt nicht

Ein Thema von EMS · begonnen am 4. Jan 2013 · letzter Beitrag vom 10. Feb 2020
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

AW: Procedure in Procedure aufrufen klappt nicht

  Alt 4. Jan 2013, 22:00
Eigentlich kein Fehler, aber ich würde statt

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
...
    LAnzahl := 0;
den Punkt so lösen

Delphi-Quellcode:
procedure String_Zaehler(
  var T : Textfile; // Datei, in der gesucht werden soll (als Textfile-Referenz)
   s : string; // Suchtext
   var Anz : Integer // Anzahl der gefundenen Stellen
 );

var
  position,laenge:integer;
  text:string;

begin
Anz := 0; //<<< HIER auf Null setzten <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
while not eof(T) do
Die Lösung von dir klappt zwar auch, aber da muss man vor der Nutzung der Prozedur zuerst die Variable löschen. Und das ist eine mögliche Fehlerquelle für die Zukunft. Und so erledigt man das Problem gleich in der Prozedur mit.
  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: Procedure in Procedure aufrufen klappt nicht

  Alt 4. Jan 2013, 23:00
@EMS

Du hast jetzt ein Programm, was die Anzahl der Textzeilen in einer Datei ermittelt.
Die Anzahl der Vorkommnisse des Such-Strings in der Datei bekommst du so nicht.

@Popov

Da die procedure die Anzahl als var Parameter übergeben bekommt, muss die Variable vorher initialisiert werden.

Die genauen Anforderungen kennen wir nicht. Evtl. soll diese procedure (in den nächsten Schritten) auch mehrfach aufgerufen werden (mehrere Dateien) und die Anzahl soll immer weiter erhöht werden.

Wenn wirklich nur die Anzahl zurückgegeben werden soll, dann wäre Anzahl in der Vorgabe ein out Parameter gewesen
(gut, kann auch sein, dass der Lehrer diesen feinen Unterschied gar nicht kennt)
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
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#3

AW: Procedure in Procedure aufrufen klappt nicht

  Alt 5. Jan 2013, 13:08
hallo
doch ich habe einfach in die Text datei nen paar mal das Wort "Test" zegefügt und dann passte
die Anzahl wie oft das Wort "Test" in meiner Textdatei vorkommt.
  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: Procedure in Procedure aufrufen klappt nicht

  Alt 5. Jan 2013, 13:31
hallo
doch ich habe einfach in die Text datei nen paar mal das Wort "Test" zegefügt und dann passte
die Anzahl wie oft das Wort "Test" in meiner Textdatei vorkommt.
Logisch, wenn das Wort "Test" genauso häufig vorkommt, wie die Textdatei Zeilen hat, dann kommt das schon hin.

Du solltest dir auch mal ein vernüftiges Testszenario überlegen.
Code:
Test
nur so
oder so
und so
noch ein Test
Test Test Test
Dieser Text liefert bei der Suche nach "Test" 6. Sollte aber 5 sein.
Code:
Test Test Test
Test Test
Dieser Text liefert bei der Suche nach "Test" 2. Sollte aber 5 sein.
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
Popov
(Gast)

n/a Beiträge
 
#5

AW: Procedure in Procedure aufrufen klappt nicht

  Alt 5. Jan 2013, 13:36
Ganz wichtig - nicht nur "Test Test", sondern auch "TestTest" ohne Leerzeichen. Aber auch "Testest". In dem Fall ist wohl alles in Ordnung, aber je nachdem wie man mit Delete umgeht, könnten hier mögliche Fehlerquellen liegen.
  Mit Zitat antworten Zitat
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#6

AW: Procedure in Procedure aufrufen klappt nicht

  Alt 5. Jan 2013, 13:42
mhh ich hab das noch mal geprüft klappt doch irgendwie nicht mhh das ist doof
hab keine Ahnung mehr wie ich das richtig hinbekommen soll
  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
 
#7

AW: Procedure in Procedure aufrufen klappt nicht

  Alt 5. Jan 2013, 13:44
mhh ich hab das noch mal geprüft klappt doch irgendwie nicht mhh das ist doof
hab keine Ahnung mehr wie ich das richtig hinbekommen soll
Es soll ja nur gezählt werden wenn der SuchText gefunden wird.
Wenn in deiner Suchroutine aber kein wenn if o.ä. auftaucht, dann weiß ich sofort, da tut was nicht
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
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 18:29 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