Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Fehler im Quelltext (https://www.delphipraxis.net/174451-fehler-im-quelltext.html)

Der schöne Günther 23. Apr 2013 12:36

AW: Fehler im Quelltext
 
Zitat:

Zitat von Jonas Shinaniganz (Beitrag 1212529)
Im ernst, du hast versucht das Bild in Paint mit dem Pinsel frei zu stellen und dann auf halben Weg aufgegeben?

Besser als erst gar nicht versucht, oder? :smile2:

Enigma hin oder her, ich verstehe die "Aufgabe" nicht ganz. Das Programm lässt sich kompilieren, es startet und wird dann (ohne jegliche Fehlermeldung) wieder beendet?

SubData 23. Apr 2013 12:42

AW: Fehler im Quelltext
 
Sorry, aber um deine Hausaufgaben zu erledigen musst du schon ein wenig Engagement zeigen.

Wie ich auf "Hausaufgaben" komme?

http://www.delphipraxis.net/174342-f...orderlich.html

Sir Rufo 23. Apr 2013 13:07

AW: Fehler im Quelltext
 
Hier mal formatiert und in Delphi-Tags
(nur damit der TE sieht, wie das aussehen könnte bzw. sollte)
Delphi-Quellcode:
unit penigma;

interface

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

type
  TForm1 = class( TForm )
    Edit1 : TEdit;
    Edit2 : TEdit;
    Label1 : TLabel;
    Label2 : TLabel;
    Button1 : TButton;
    Memo1 : TMemo;
    Label3 : TLabel;
    Label4 : TLabel;
    Label5 : TLabel;
    Label6 : TLabel;
    Label7 : TLabel;
    Label8 : TLabel;
    Edit3 : TEdit;
    Edit4 : TEdit;
    Edit5 : TEdit;
    Edit6 : TEdit;
    Edit7 : TEdit;
    Edit8 : TEdit;
    Memo2 : TMemo;
    Memo3 : TMemo;
    Memo4 : TMemo;
    Label9 : TLabel;
    Memo5 : TMemo;
    Edit9 : TEdit;
    Edit10 : TEdit;
    Button2 : TButton;
    Label10 : TLabel;
    Label11 : TLabel;
    Button3 : TButton;
    procedure Button1Click( Sender : TObject );
    procedure Button2Click( Sender : TObject );
    procedure Button3Click( Sender : TObject );
    procedure KeyPress( Sender : TObject; var Key : Char );

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TReflektor = RECORD
    pos : byte;
    bs : Char;
  END;

  TWalze = RECORD
    pos : byte;
    bs, cb, sc : Char;
  END;

var
  Form1 :                    TForm1;
  freflektor :               FILE OF TReflektor;
  dreflektor :               TReflektor;
  areflektor :               ARRAY [0 .. 25] OF TReflektor;
  fwalze1, fwalze2, fwalze3 : File OF TWalze;
  dwalze :                   TWalze;
  aw1, aw2, aw3 :            ARRAY [0 .. 25] OF TWalze;
  ea :                       ARRAY [0 .. 25] OF Char;

implementation

{$R *.dfm}

procedure TForm1.Button1Click( Sender : TObject );
VAR
  zaehler :               byte;
  reflektor :             Shortstring;
  walze1, walze2, walze3 : Shortstring;
begin
  reflektor := 'Reflektor' + Edit1.Text + '.dat';
  ASSIGNFILE( freflektor, reflektor );
  RESET( freflektor );
  SEEK( freflektor, STRTOINT( Edit2.Text ) - 1 );
  FOR zaehler := 0 TO 25 - ( STRTOINT( Edit2.Text ) - 1 ) DO
    BEGIN
      READ( freflektor, dreflektor );
      areflektor[zaehler] := dreflektor;
    END;
  SEEK( freflektor, 0 );
  FOR zaehler := zaehler TO 25 DO
    BEGIN
      READ( freflektor, dreflektor );
      areflektor[zaehler] := dreflektor;
    END;
  Memo1.Lines.Clear;
  FOR zaehler := 0 TO 25 DO
    Memo1.Lines.Add( INTTOSTR( zaehler ) + ' , ' + areflektor[zaehler].bs );
  Closefile( freflektor );
  walze1 := 'Walze' + Edit3.Text + '.dat';
  ASSIGNFILE( fwalze1, walze1 );
  RESET( fwalze1 );
  SEEK( fwalze1, STRTOINT( Edit4.Text ) - 1 );
  FOR zaehler := 0 TO 25 - ( STRTOINT( Edit4.Text ) - 1 ) DO
    BEGIN
      READ( fwalze1, dwalze );
      aw1[zaehler] := dwalze;
    END;
  SEEK( fwalze1, 0 );
  FOR zaehler := zaehler TO 25 DO
    BEGIN
      READ( fwalze1, dwalze );
      aw1[zaehler] := dwalze;
    END;
  Memo2.Lines.Clear;
  FOR zaehler := 0 TO 25 DO
    Memo2.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw1[zaehler].bs + ' , ' + aw1[zaehler].cb + ' , ' + aw1[zaehler].sc );
  Closefile( fwalze1 );
  walze2 := 'Walze' + Edit5.Text + '.dat';
  ASSIGNFILE( fwalze2, walze2 );
  RESET( fwalze2 );
  SEEK( fwalze2, STRTOINT( Edit6.Text ) - 1 );
  FOR zaehler := 0 TO 25 - ( STRTOINT( Edit6.Text ) - 1 ) DO
    BEGIN
      READ( fwalze2, dwalze );
      aw2[zaehler] := dwalze;
    END;
  SEEK( fwalze2, 0 );
  FOR zaehler := zaehler TO 25 DO
    BEGIN
      READ( fwalze2, dwalze );
      aw2[zaehler] := dwalze;
    END;
  Memo3.Lines.Clear;
  FOR zaehler := 0 TO 25 DO
    Memo3.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw2[zaehler].bs + ' , ' + aw2[zaehler].cb + ' , ' + aw2[zaehler].sc );
  Closefile( fwalze2 );
  walze3 := 'Walze' + Edit7.Text + '.dat';
  ASSIGNFILE( fwalze3, walze3 );
  RESET( fwalze3 );
  SEEK( fwalze3, STRTOINT( Edit8.Text ) - 1 );
  FOR zaehler := 0 TO 25 - ( STRTOINT( Edit8.Text ) - 1 ) DO
    BEGIN
      READ( fwalze3, dwalze );
      aw3[zaehler] := dwalze;
    END;
  SEEK( fwalze3, 0 );
  FOR zaehler := zaehler TO 25 DO
    BEGIN
      READ( fwalze3, dwalze );
      aw3[zaehler] := dwalze;
    END;
  Memo4.Lines.Clear;
  FOR zaehler := 0 TO 25 DO
    Memo4.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw3[zaehler].bs + ' , ' + aw3[zaehler].cb + ' , ' + aw3[zaehler].sc );
  Closefile( fwalze3 );
  FOR zaehler  := 0 TO 25 DO
    ea[zaehler] := chr( 65 + zaehler );
  Memo5.Lines.Clear;
  FOR zaehler := 0 TO 25 DO
    Memo5.Lines.Add( INTTOSTR( zaehler ) + ' , ' + ea[zaehler] );

end;

procedure TForm1.Button2Click( Sender : TObject );
begin
  application.Terminate;
end;

procedure TForm1.Button3Click( Sender : TObject );
VAR
  zaehler : INTEGER;
  zs :     TWalze;
begin
  zs := aw3[0];
  For zaehler       := 1 TO 25 Do
    aw3[zaehler - 1] := aw3[zaehler];
  aw3[25] := zs;
  IF zs.sc = '+'
  then
    Begin
      zs := aw2[0];
      For zaehler       := 1 TO 25 Do
        aw2[zaehler - 1] := aw2[zaehler];
      aw2[25] := zs;
      IF zs.sc = '+'
      then
        Begin
          zs                := aw1[0];
          For zaehler       := 1 TO 25 Do
            aw1[zaehler - 1] := aw1[zaehler];
          aw1[25]           := zs;
        end;
    end;
  For zaehler := 0 to 25 do
    Begin
      Memo2.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw1[zaehler].bs + ' , ' + aw1[zaehler].cb + ' , ' + aw1[zaehler].sc );
      Memo3.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw2[zaehler].bs + ' , ' + aw2[zaehler].cb + ' , ' + aw2[zaehler].sc );
      Memo4.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw3[zaehler].bs + ' , ' + aw3[zaehler].cb + ' , ' + aw3[zaehler].sc );
    end;
end;

procedure TForm1.KeyPress( Sender : TObject; var Key : Char );
VAR
  zaehler :                          INTEGER;
  Pos_BS1 :                          byte;
  Pos_BS2 :                          byte;
  Pos_BS3 :                          byte;
  Pos_Ea :                           byte;
  pos_Ref :                          byte;
  cb3, cb2, cb1, Ref, bs1, bs2, bs3 : Char;
  zs :                               TWalze;
Begin
  If ( ( ( Key < #97 ) OR ( Key > #122 ) ) AND ( ( Key < #65 ) OR ( Key > #90 ) ) )
  Then
    Key := #0
  Else
    Begin
      If Key > #90
      then
        Key := chr( ORD( Key ) - 32 );

      zs                := aw3[0];
      For zaehler       := 1 TO 25 Do
        aw3[zaehler - 1] := aw3[zaehler];
      aw3[25]           := zs;
      IF zs.sc = '+'
      then
        Begin
          zs                := aw2[0];
          For zaehler       := 1 TO 25 Do
            aw2[zaehler - 1] := aw2[zaehler];
          aw2[25]           := zs;
          IF zs.sc = '+'
          then
            Begin
              zs                := aw1[0];
              For zaehler       := 1 TO 25 Do
                aw1[zaehler - 1] := aw1[zaehler];
              aw1[25]           := zs;
            end;
        end;
      For zaehler := 1 to 25 do
        Begin
          Memo2.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw1[zaehler].bs + ' , ' + aw1[zaehler].cb + ' , ' + aw1[zaehler].sc );
          Memo3.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw2[zaehler].bs + ' , ' + aw2[zaehler].cb + ' , ' + aw2[zaehler].sc );
          Memo4.Lines.Add( INTTOSTR( zaehler ) + ' , ' + aw3[zaehler].bs + ' , ' + aw3[zaehler].cb + ' , ' + aw3[zaehler].sc );
        end;

      For zaehler := 0 To 25 do
        if ea[zaehler] = Key
        Then
          Pos_Ea := zaehler;
      cb3        := aw3[Pos_Ea].cb;

      FOR zaehler := 0 To 25 Do
        If aw3[zaehler].bs = cb3
        Then
          Pos_BS3 := zaehler;
      cb2         := aw2[Pos_BS3].cb;

      FOR zaehler := 0 To 25 Do
        IF aw2[zaehler].bs = cb2
        Then
          Pos_BS2 := zaehler;
      cb1         := aw1[Pos_BS2].cb;

      For zaehler := 0 To 25 Do
        If aw1[zaehler].bs = cb1
        Then
          Pos_BS1 := zaehler;
      Ref        := areflektor[Pos_BS1].bs;

      For zaehler := 0 To 25 DO
        IF ( ( areflektor[zaehler].bs = Ref ) And ( zaehler > Pos_BS1 ) )
        Then
          pos_Ref := zaehler;
      bs1         := aw1[pos_Ref].bs;

      For zaehler := 0 To 25 Do
        If aw1[zaehler].cb = bs1
        Then
          Pos_BS1 := zaehler;
      bs2         := aw2[Pos_BS1].bs;

      FOR zaehler := 0 To 25 Do
        IF aw2[zaehler].cb = bs2
        Then
          Pos_BS2 := zaehler;
      bs3         := aw3[Pos_BS2].bs;

      FOR zaehler := 0 To 25 Do
        If aw3[zaehler].cb = bs3
        Then
          Pos_Ea := zaehler;
      Edit10.Text := Edit10.Text + ea[Pos_Ea];
    end;
end;

end.

p80286 23. Apr 2013 14:26

AW: Fehler im Quelltext
 
Zitat:

Zitat von Sir Rufo (Beitrag 1212550)
Hier mal formatiert und in Delphi-Tags
(nur damit der TE sieht, wie das aussehen könnte bzw. sollte)

Das sieht ja noch immer Gruselig aus. Sprechende Variablennahmen scheinen noch nicht bis in den Unterricht vorgedrungen zu sein.
Und dies hier scheint auch aus TP-Zeiten übrig geblieben zu sein:
Delphi-Quellcode:
  reflektor := 'Reflektor' + Edit1.Text + '.dat';
  ASSIGNFILE( freflektor, reflektor );
  RESET( freflektor );
  SEEK( freflektor, STRTOINT( Edit2.Text ) - 1 );
  FOR zaehler := 0 TO 25 - ( STRTOINT( Edit2.Text ) - 1 ) DO
    BEGIN
Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 Uhr.
Seite 2 von 2     12   

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