-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
5. Jan 2013
Du musst die Variable Anz erhöhen und nicht position.
Denn Anz wird zurückgegeben.
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
5. Jan 2013
Dann zähl doch auch ANZ hoch ... :roll:
Damit inc( Position ); // ANZ hochzählen wird position hochgezählt, auch wenn der Kommentar etwas anderes verlauten lässt, aber es ist nur ein Kommentar ;)
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
5. Jan 2013
Man sieht es besser, wenn man den gesamten Kontext betrachtet und den alten Code auskommentiert:
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
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
5. Jan 2013
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 ;)
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
5. Jan 2013
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.
Test
nur so
oder so
und so
noch ein Test
Test Test Test
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
@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)...
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
oder die procedure weiß nichts von Edit1, weil es ja keine Methode von TForm1 ist ... :roll:
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
schau mal in den Beitrag #27 ;)
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
Wenn das die Aufgabe ist, warum ist dann deine procedure nicht so deklariert?
Deine
procedure String_Zaehler(const AStr : String; var APosition : Integer );
begin
...
end;
und so soll die laut Aufgabe aussehen
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
Nein, das da gibt dir die Position von dem String 'edit1.text' in dem String s zurück.
Wenn du auf den Wert des Edit-Feldes zugreifen möchtest, dann so Edit1.Text
Alles was du in Anführungszeichen setzt ist ein String.
position := pos( 'ich bin ein konstanter string im Quelltext', s )
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
Ok, wo in deinem Programm ermittelst du die Position des Edit-Feld-Werts in der Text-Datei?
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
Das sagt lediglich aus, dass der Wert, der sich in position bzw. LPosition befindet als String in das Label geschrieben wird - und ob man es glaubt oder nicht, genau das passiert, und zwar ganz genau das.
UPDATE: Kleiner Tip von mir, ich wette das dort im Label 0 steht.
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
und, was zeigt er an?
nichts, bunte Farben, irgendwelche Zeichen?
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
Ja, ist schon seltsam, das wir hier Code posten, der keine Fehler hat ... wir wollten das in diesem jahr eigentlich ändern, aber die Gewohnheit ... :roll:
Und wo hast du dem Programm mitgeteilt, dass du genau das willst?
Ich sehe das nicht ... und dein Compiler sieht das so wie ich ...
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
ich sag da jetzt mal nichts mehr zu :wall:
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
Kann es sein, dass du die Vorschläge hier in dein Programm eintippst und nicht per Copy'n'Paste überträgst?
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
Du hast da wohl irgendwo etwas mit Position benannt und das knallt jetzt.
Versuch das einmal
implementation
{$R *.lfm}
{ TForm1 }
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
Häng doch mal das gesamte Project als Anhang dran ...
-
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
4. Jan 2013
procedure String_Zaehler(s:string; var position:integer); // <-- da
begin
position:=pos('edit1.text',s);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
posi: integer;
dateiname,s: string;
datei:textfile;