Delphi-PRAXiS
Seite 3 von 7     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Procedure in Procedure aufrufen klappt nicht (https://www.delphipraxis.net/172452-procedure-procedure-aufrufen-klappt-nicht.html)

EMS 4. Jan 2013 20:41

AW: Procedure in Procedure aufrufen klappt nicht
 
ja tut es auch aber ich kann es nicht nachvollziehen wieso

Popov 4. Jan 2013 20:41

AW: Procedure in Procedure aufrufen klappt nicht
 
Unabhängig des Problems, eine Zwischenfrage - hat es einen Grund wieso du die Textdatei über ASSIGNFILE öffnest? Mit modernen Delphi mitteln wäre das um einiges einfacher.

EMS 4. Jan 2013 20:43

AW: Procedure in Procedure aufrufen klappt nicht
 
Schreiben Sie eine Procedure, die einen Text nach einem String durchsucht und die Anzahl über eine
Referenzvariable ausgibt.(Procedure String_Zaehler(VAR T:Textfile; s:string, VAR Anz: Integer)).
Schreiben Sie auch das Rahmenprogramm dazu in dem der Text über ein opendialog ausgewählt wird.
Der der zu suchende String wird über ein Editfeld eingegeben und die Anzahl in einem Label ausgegeben.


das ist die aufgabe

Sir Rufo 4. Jan 2013 20:44

AW: Procedure in Procedure aufrufen klappt nicht
 
Zitat:

Zitat von EMS (Beitrag 1197686)
ja tut es auch aber ich kann es nicht nachvollziehen wieso

Ok, wo in deinem Programm ermittelst du die Position des Edit-Feld-Werts in der Text-Datei?

EMS 4. Jan 2013 20:48

AW: Procedure in Procedure aufrufen klappt nicht
 
in der Procedure String_Zaehler mit position:=pos('edit1.text',s)

und das s kommt aus dem Readln aus dem Button

Sir Rufo 4. Jan 2013 20:53

AW: Procedure in Procedure aufrufen klappt nicht
 
Zitat:

Zitat von EMS (Beitrag 1197690)
mit position:=pos('edit1.text',s)

Nein, das da gibt dir die Position von dem String
Delphi-Quellcode:
'edit1.text'
in dem String
Delphi-Quellcode:
s
zurück.

Wenn du auf den Wert des Edit-Feldes zugreifen möchtest, dann so
Delphi-Quellcode:
Edit1.Text
Alles was du in Anführungszeichen setzt ist ein String.
Delphi-Quellcode:
position := pos( 'ich bin ein konstanter string im Quelltext', s )

Sir Rufo 4. Jan 2013 20:58

AW: Procedure in Procedure aufrufen klappt nicht
 
Zitat:

Zitat von EMS (Beitrag 1197688)
Schreiben Sie eine Procedure, die einen Text nach einem String durchsucht und die Anzahl über eine
Referenzvariable ausgibt.(Procedure String_Zaehler(VAR T:Textfile; s:string, VAR Anz: Integer)).
Schreiben Sie auch das Rahmenprogramm dazu in dem der Text über ein opendialog ausgewählt wird.
Der der zu suchende String wird über ein Editfeld eingegeben und die Anzahl in einem Label ausgegeben.


das ist die aufgabe

Wenn das die Aufgabe ist, warum ist dann deine procedure nicht so deklariert?

Deine
Delphi-Quellcode:
procedure String_Zaehler(const AStr : String; var APosition : Integer );
begin
  ...
end;
und so soll die laut Aufgabe aussehen
Delphi-Quellcode:
procedure String_Zaehler( var T : Textfile; s : string; var Anz : Integer );
begin
  ...
end;
:gruebel:

UPDATE

Ich kann ja mal von Lehrerisch auf Deutsch übersetzen ;)
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
);
begin
  ...
end;
und das geforderte Rahmenprogramm hast du ja schon fertig, darum baue ich dir diese Procedure da mal ein:
Delphi-Quellcode:
procedure TForm1.Button1Click( Sender: TObject );
var
  LDateiname : String;
  LDatei : Textfile;
  LAnzahl : Integer;
begin
  if OpenDialog1.Execute then
  begin
    LDateiname := OpenDialog1.Filename;
    AssignFile( LDatei, LDateiname );
    Reset( LDatei );

    LAnzahl := 0;

    String_Zaehler( LDatei, Edit1.Text, LAnzahl );
     
    Label2.Caption := IntToStr( LAnzahl );
  end;
  CloseFile( LDatei );
end;

EMS 4. Jan 2013 21:00

AW: Procedure in Procedure aufrufen klappt nicht
 
weil ich so bisher noch gar nix hinbekommen habe und jetzt so stückchen für stückchen auf diese procedur hinarbeiten wollte

und als ich am anfang die '' nicht hatte gabs immer den Fehler:

unit1.pas(42,24) Error: Identifier not found "edit1"
unit1.pas(78) Fatal: There were 1 errors compiling module, stopping

und danch nicht mehr

delnu 4. Jan 2013 21:02

AW: Procedure in Procedure aufrufen klappt nicht
 
Zitat:

Wenn das die Aufgabe ist, warum ist dann deine procedure nicht so deklariert?
Vielleicht gibt es in der Hinsicht Spielraum ? :lol:

Zitat:

und als ich am anfang die '' nicht hatte gabs immer den Fehler:

unit1.pas(42,24) Error: Identifier not found "edit1"
unit1.pas(78) Fatal: There were 1 errors compiling module, stopping
Das sieht doch ganz so aus, als ob gar kein Editfeld vorhanden ist oder es anders benannt wurde.

Sir Rufo 4. Jan 2013 21:05

AW: Procedure in Procedure aufrufen klappt nicht
 
Zitat:

Zitat von EMS (Beitrag 1197696)
weil ich so bisher noch gar nix hinbekommen habe und jetzt so stückchen für stückchen auf diese procedur hinarbeiten wollte

und als ich am anfang die '' nicht hatte gabs immer den Fehler:

unit1.pas(42,24) Error: Identifier not found "edit1"
unit1.pas(78) Fatal: There were 1 errors compiling module, stopping

und danch nicht mehr

schau mal in den Beitrag #27 ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr.
Seite 3 von 7     123 45     Letzte »    

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