Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fehlersuche im Quellcode (https://www.delphipraxis.net/5185-fehlersuche-im-quellcode.html)

CodenameCT 27. Mai 2003 09:33


Fehlersuche im Quellcode
 
kann jemand was mit dem quelltext anfangen ??


Delphi-Quellcode:
unit textmenge;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TAufbaumenge = SET OF 'A'..'Z';
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Aufbaumenge,Pruefmenge: TAufbaumenge;
  Textanzahl: integer;
  Text: string;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin

Aufbaumenge :=[ ];
Pruefmenge := ['a'..'z'] + ['A'..'Z'];

Textanzahl:=length(edit1.text);
Text:=edit1.text;

for i:=1 to Textanzahl do
begin
if pruefmenge IN text then
        include(Aufbaumenge,Text[i]);
end;


end;

end.
wenn ja was ist der fehler und wo ist er und kann jemand den fehler beheben und es mir sagen was der fehler ist !!

danke !!

[edit=Admin]Code in [ delphi ]-Tags gesetzt und einen passenderen Titel gewählt. Dies bitte künftig selber machen! Danke. Mfg. Daniel[/edit]

Minz 27. Mai 2003 10:08

Hi,

hab mir jetzt nicht alles angeschaut, nur bis
zum 1. Verdacht :D

Mich dünkt da fehlt ein zweites Type vor TForm1=class(TForm)


Grüße Minz

ShadowCaster 27. Mai 2003 10:32

meines Wissens nach ist das nicht nötig, das zweite Type. Aber generell verwende ich das auch so wegen der Lesbarkeit ;)

r_kerber 27. Mai 2003 10:40

Ich habe zwar noch nie mit Mengen gearbeitet, aber ich denke, beide Operatoren (vor und nach IN) sollten vom Typ SET sein. Das sagt auch die Fehlermeldung aus:
Zitat:

[Fehler] Unit1.pas(44): Operator ist auf diesen Operandentyp nicht anwendbar
Was willst Du mit dieser Abfrage konkret erreichen?

Jens Schumann 27. Mai 2003 11:07

Hallo,
es muss
Delphi-Quellcode:
if Text[i] in pruefmenge then
heissen.

Da Pruefmenge vom Type TAufbaumenge ist bringt die Anweisung
Delphi-Quellcode:
Pruefmenge := ['a'..'z'] + ['A'..'Z'];
nichts. Da TAufbaumenge ein SET of 'A'..'Z' ist. D.h. Variablen vom Type TAufbaumenge können nur Großbuchstaben enthalten. D.h. Pruefmenge wird nach der o.g. Anweisung nur die Menge der Großbuchstaben enthalten.
Interessanterweise bringt der D5-Compiler bei eingeschalteter Bereichsprüfung keine Fehlermeldung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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