AGB  ·  Datenschutz  ·  Impressum  







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

problem mit else nach end

Ein Thema von Deltachaos · begonnen am 20. Feb 2008 · letzter Beitrag vom 22. Feb 2008
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#51

Re: problem mit else nach end

  Alt 21. Feb 2008, 14:56
Ich hab heute mal meinem Informatik lehrer vogehalten was ich da zusammengeschrieben hab und der hat mir dan gesagt was ihr mir auch die gantze zeit gesagt habt aber da hab ichs dan verstanden so ist der text richtig:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Edit2: TEdit;
    CheckBox1: TCheckBox;
    Edit3: TEdit;
    Edit4: TEdit;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    ComboBox1: TComboBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  F: TextFile;
  clan_tag, name, d_name, ip, port: String;

procedure check_n;
begin
  //Ersätze Sonderzeichen
  name := StringReplace(name, '%', '%25', [rfReplaceAll]);
  name := StringReplace(name, '?', '%3F', [rfReplaceAll]);
  name := StringReplace(name, 'Ä', '%C4', [rfReplaceAll]);
  name := StringReplace(name, 'ä', '%E4', [rfReplaceAll]);
  name := StringReplace(name, 'Ü', '%DC', [rfReplaceAll]);
  name := StringReplace(name, 'ü', '%FC', [rfReplaceAll]);
  name := StringReplace(name, 'Ö', '%D6', [rfReplaceAll]);
  name := StringReplace(name, 'ö', '%F6', [rfReplaceAll]);
  name := StringReplace(name, 'ß', '%DF', [rfReplaceAll]);
  name := StringReplace(name, ' ', '%20', [rfReplaceAll]);
  name := StringReplace(name, ';', '%3B', [rfReplaceAll]);
  name := StringReplace(name, '=', '%3D', [rfReplaceAll]);
  name := StringReplace(name, '"', '%22', [rfReplaceAll]);
  name := StringReplace(name, '(', '%28', [rfReplaceAll]);
  name := StringReplace(name, ')', '%29', [rfReplaceAll]);
  name := StringReplace(name, '.', '%2E', [rfReplaceAll]);
  name := StringReplace(name, ':', '%3A', [rfReplaceAll]);
  name := StringReplace(name, '<', '%3C', [rfReplaceAll]);
  name := StringReplace(name, '>', '%3E', [rfReplaceAll]);
  name := StringReplace(name, '@', '%40', [rfReplaceAll]);
  name := StringReplace(name, '[', '%5B', [rfReplaceAll]);
  name := StringReplace(name, ']', '%5D', [rfReplaceAll]);
  name := StringReplace(name, '\', '%5C', [rfReplaceAll]);
  name := StringReplace(name, '^', '%5E', [rfReplaceAll]);
  name := StringReplace(name, '{', '%7B', [rfReplaceAll]);
  name := StringReplace(name, '}', '%7D', [rfReplaceAll]);
  name := StringReplace(name, '|', '%7C', [rfReplaceAll]);
  name := StringReplace(name, '&', '%26', [rfReplaceAll]);
  name := StringReplace(name, '#', '%23', [rfReplaceAll]);
  //Sonderzeichen wurden ersetzt
end;

procedure check_c;
begin
  //Ersätze Sonderzeichen
  clan_tag := StringReplace(clan_tag, '%', '%25', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '?', '%3F', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, 'Ä', '%C4', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, 'ä', '%E4', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, 'Ü', '%DC', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, 'ü', '%FC', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, 'Ö', '%D6', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, 'ö', '%F6', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, 'ß', '%DF', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, ' ', '%20', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, ';', '%3B', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '=', '%3D', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '"', '%22', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '(', '%28', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, ')', '%29', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '.', '%2E', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, ':', '%3A', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '<', '%3C', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '>', '%3E', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '@', '%40', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '[', '%5B', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, ']', '%5D', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '\', '%5C', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '^', '%5E', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '{', '%7B', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '}', '%7D', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '|', '%7C', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '&', '%26', [rfReplaceAll]);
  clan_tag := StringReplace(clan_tag, '#', '%23', [rfReplaceAll]);
  //Sonderzeichen wurden ersetzt
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Name := edit1.Text;
  Clan_Tag := edit2.Text;
  ip := edit3.text;
  port := edit4.text;

  D_Name := InputBox('Dateiname', 'Bitte Dateinamen eingeben!', 'Link');
  AssignFile(F, d_name + '.txt');
  check_n; //ersätzt Sonderzeichen in var clan_tag
  check_c; //ersätzt Sonderzeichen in var name
  Rewrite(F);

  //Prüft ob RadioButton2 ausgewehlt ist
  if RadioButton2.Checked then
  //Speichert ersten Link
  begin
    if CheckBox1.Checked then
      //Server Banner
      Writeln(F, '[center][url=http://www.gametracker.com/server_info/89.202.196.35:16570/]'
        + '[img]http://cache.www.gametracker.com/server_info/89.202.196.35:16570/'
        + 'b_350x20_C692108-381007-FFFFFF-000000.png[/img][/url][/center]');
  //speichert zweiten Link
    if CheckBox2.Checked then
      //Player Banner
      Writeln(F, '[center][url=http://www.2142-stats.de/'
        + name + '+stats.html][img]http://sigs.2142-stats.com/'
        + name + '_player_31422.png[/img][/url][/center]');
  //speichert dritten link
    if checkBox3.Checked then
      if (Trim(Edit2.Text) <> '') then //Prüft ob edit2 leer ist
        //Player on Server Banner
        //Wen nicht leer
        Writeln(F, '[center][url=http://www.gametracker.com/server/'
          + IP + ':' + port + '/player/' + clan_tag + '%20' + name
          + '/][img]http://cache.www.gametracker.com/player/' + clan_Tag + '%20'
          + name + '/' + IP + ':' + port + '/b_560x95.png[/img][/url][/center]')
      else
        //wen leer
        Writeln(F, '[center][url=http://www.gametracker.com/server/'
          + IP + ':' + port + '/player/' + name + '/][img]http://cache.www.gametracker.com/player/'
          + name + '/' + IP + ':' + port + '/b_560x95.png[/img][/url][/center]')
    end;
    //Prüft ob RadioButton2 ausgewehlt ist
    if RadioButton1.Checked then
    //Speichert ersten Link
    begin
  if form1.CheckBox1.Checked then
    //Server Banner
    Writeln(F, '<p align="center"><a href="http://www.gametracker.com/server_info/'
      + IP + ':' + port + '/"><img border="0" src="http://cache.www.gametracker.com/server_info/'
      + IP + ':' + port + '/b_350x20_C692108-381007-FFFFFF-000000.png"></a></p>');

    if form1.CheckBox2.Checked then
      //Player Banner
      Writeln(F, '<p align="center"><a href="http://www.2142-stats.de/'
        + name + '+stats.html"><img border="0" src="http://sigs.2142-stats.com/'
        + name + '_player_31422.png"></a></p>');

    if form1.checkBox3.Checked then
      if (Trim(form1.Edit2.Text) <> '') then
        //Player on Server Banner
        Writeln(F, '<p align="center"><a href="http://www.gametracker.com/server/'
          + IP + ':' + port + '/player/' + clan_tag + '%20' + name
          + '/"><img border="0" src="http://cache.www.gametracker.com/player/'
          + clan_Tag + '%20' + name + '/' + IP + ':' + port + '/b_560x95.png"></a></p>')
      else
        Writeln(F, '<p align="center"><a href="http://www.gametracker.com/server/'
          + IP + ':' + port + '/player/' + name + '/"><img border="0" src="http://cache.www.gametracker.com/player/'
          + name + '/' + IP + ':' + port +'/b_560x95.png"></a></p>')
end;

  CloseFile(F); //Schliest Datei
  MessageDlg('Datei "' + d_name + '.txt" wurde erstellt', mtInformation, [mbOk], 0);
  close; //Schliest Programm
end;

end.
ich heng das programm noch an
Angehängte Dateien
Dateityp: rar linck_740.rar (353,7 KB, 0x aufgerufen)
Maximilian Ruta
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#52

Re: problem mit else nach end

  Alt 21. Feb 2008, 15:33
Fein.

Du rückst aber immernoch nicht ordentlich ein:
Delphi-Quellcode:
    //Speichert ersten Link
    begin
  if form1.CheckBox1.Checked then
    //Server Banner
Warum ist das if vor dem übergeordneten begin?

Delphi-Quellcode:
   
          + clan_Tag + '%20' + name + '/' + IP + ':' + port + '/b_560x95.png"></a></p>')
      else
        Writeln(F, '<p align="center"><a href="http://www.gametracker.com/server/'
          + IP + ':' + port + '/player/' + name + '/"><img border="0" src="http://cache.www.gametracker.com/player/'
          + name + '/' + IP + ':' + port +'/b_560x95.png"></a></p>')
end;

  CloseFile(F); //Schliest Datei
Warum steht das end am Anfang der Spalte? Schließt es die Hauptprozedur? Eher nicht ...

Also bitte, so schwer kann das doch nicht sein, dass man hier 4 Seiten lang zur Schau stellen muss, dass die eigenen kognitiven Fähigkeiten so extravagant degeneriert sind oder?
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#53

Re: problem mit else nach end

  Alt 21. Feb 2008, 15:38
Schon besser, aber es sind immer noch ein paar Schönheitsfehler drin.

Als erstes ist mir das end in Zeile 190 aufgefallen, weil es nicht eingerückt ist. Dann hab ich mal nach oben geschaut, und da ist mir in Zeile 166 aufgefallen, dass das if nach dem begin zu wenig eingerückt ist.

Ich persönlich mache das folgendermaßen. Wenn ich ein Begin setzte, dann schreibe ich das end linksbündig genau darunter. Danach füge ich er den Code dazwischen ein. So kann ich schon mit dem Cursor, wenn ich einfach nur nach unten gehe, das end für ein begin finden.

Desweiteren rate ich zu entsprechend übersichtlicher Programmierung mit viel Kommentaren. Bedenke, dass du deinen Code auch noch lesen und verstehen willst, wenn du mal 2 Jahre nix dran gemacht hast.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#54

Re: problem mit else nach end

  Alt 21. Feb 2008, 15:41
Zitat von Captnemo:
Wenn ich ein Begin setzte, dann schreibe ich das end linksbündig genau darunter. Danach füge ich er den Code dazwischen ein.
Ich mache das haargenauso, allerdings musste ich dann bei TDE feststellen, dass meine "end"s dann doppelt waren, da die IDE sie per default selbst ergänzt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#55

Re: problem mit else nach end

  Alt 21. Feb 2008, 15:55
Zitat von DeddyH:
Zitat von Captnemo:
Wenn ich ein Begin setzte, dann schreibe ich das end linksbündig genau darunter. Danach füge ich er den Code dazwischen ein.
Ich mache das haargenauso, allerdings musste ich dann bei TDE feststellen, dass meine "end"s dann doppelt waren, da die IDE sie per default selbst ergänzt
Gut, das ist klar. Durch das CNPack ist das bei mir auch so, dass das end automatisch erzeugt wird. Aber das fällt einem ja sofort ins Auge
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#56

Re: problem mit else nach end

  Alt 21. Feb 2008, 16:11
Zitat von Captnemo:
Aber das fällt einem ja sofort ins Auge
Dazu muss man aber auf den Bildschirm schauen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#57

Re: problem mit else nach end

  Alt 21. Feb 2008, 16:28
Hi,

Dann mach ich auch mal mit.. Aber was du dir merken solltest: end beendet nicht die procedure Um eine Procedure zu verlassen muss entweder der Code der procedure vollständig bis zum procedure-end; durchlaufen sein oder du rufst exit; auf.

Hier der Code anständig formatiert! (Ohne Kommentare)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Name := edit1.Text;
  Clan_Tag := edit2.Text;
  ip := edit3.text;
  port := edit4.text;

  D_Name := InputBox('Dateiname', 'Bitte Dateinamen eingeben!', 'Link');
  AssignFile(F, d_name + '.txt');
  check_n;
  check_c;
  Rewrite(F);

  if RadioButton2.Checked then
  begin
    if CheckBox1.Checked then
      Writeln(F, '[center][url=http://www.gametracker.com/server_info/89.202.196.35:16570/]'
               + '[img]http://cache.www.gametracker.com/server_info/89.202.196.35:16570/'
               + 'b_350x20_C692108-381007-FFFFFF-000000.png[/img][/url][/center]');
    if CheckBox2.Checked then
      Writeln(F, '[center][url=http://www.2142-stats.de/'
                + name + '+stats.html][img]http://sigs.2142-stats.com/'
                + name + '_player_31422.png[/img][/url][/center]');
    if CheckBox3.Checked then
      if (Trim(Edit2.Text) <> '') then
        Writeln(F, '[center][url=http://www.gametracker.com/server/'
          + IP + ':' + port + '/player/' + clan_tag + '%20' + name
          + '/][img]http://cache.www.gametracker.com/player/' + clan_Tag + '%20'
          + name + '/' + IP + ':' + port + '/b_560x95.png[/img][/url][/center]')
      else
        Writeln(F, '[center][url=http://www.gametracker.com/server/'
                 + IP + ':' + port + '/player/' + name
                 + '/][img]http://cache.www.gametracker.com/player/'
                 + name + '/' + IP + ':' + port + '/b_560x95.png[/img][/url][/center]')
  end;

  if RadioButton1.Checked then
  begin
    if CheckBox1.Checked then
      Writeln(F, '<p align="center"><a href="http://www.gametracker.com/server_info/'
               + IP + ':' + port + '/"><img border="0" '
               + 'src="http://cache.www.gametracker.com/server_info/'
               + IP + ':' + port + '/b_350x20_C692108-381007-FFFFFF-000000.png"></a></p>');

    if CheckBox2.Checked then
      Writeln(F, '<p align="center"><a href="http://www.2142-stats.de/'
                + name + '+stats.html"><img border="0" src="http://sigs.2142-stats.com/'
                + name + '_player_31422.png"></a></p>');

    if CheckBox3.Checked then
      if (Trim(form1.Edit2.Text) <> '') then
        Writeln(F, '<p align="center"><a href="http://www.gametracker.com/server/'
                  + IP + ':' + port + '/player/' + clan_tag + '%20' + name
                  + '/"><img border="0" src="http://cache.www.gametracker.com/player/'
                  + clan_Tag + '%20' + name + '/' + IP + ':' + port + '/b_560x95.png"></a></p>')
      else
        Writeln(F, '<p align="center"><a href="http://www.gametracker.com/server/'
                 + IP + ':' + port + '/player/' + name + '/"><img border="0"
                 + 'src="http://cache.www.gametracker.com/player/'
                 + name + '/' + IP + ':' + port +'/b_560x95.png"></a></p>')
  end;
  CloseFile(F);
  MessageDlg('Datei "' + d_name + '.txt" wurde erstellt', mtInformation, [mbOk], 0);
  close;
end;
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#58

Re: problem mit else nach end

  Alt 21. Feb 2008, 18:06
Zitat von Neutral General:
Hi,

Dann mach ich auch mal mit.. Aber was du dir merken solltest: end beendet nicht die procedure Um eine Procedure zu verlassen muss entweder der Code der procedure vollständig bis zum procedure-end; durchlaufen sein oder du rufst exit; auf.

Hier der Code anständig formatiert! (Ohne Kommentare)
das heist da wohl ich so das so machen:

Delphi-Quellcode:
procedure blabal;
begin
djsklhgklh;
oiohzgsdfhl;
bhrfgsdbgjkdb;
exit;
anstat:

Delphi-Quellcode:
procedure blabal;
begin
djsklhgklh;
oiohzgsdfhl;
bhrfgsdbgjkdb;
end;
???
Maximilian Ruta
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#59

Re: problem mit else nach end

  Alt 21. Feb 2008, 18:08
Es wurde dir schon ein paar mal gesagt: Kein begin ohne end
Am Besten na die Tafel und 1000 mal Schreiben!!!!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#60

Re: problem mit else nach end

  Alt 21. Feb 2008, 18:15
Zitat von mkinzler:
Es wurde dir schon ein paar mal gesagt: Kein begin ohne end
Am Besten na die Tafel und 1000 mal Schreiben!!!!
dan wohl so?

Delphi-Quellcode:
procedure hjsdgfjg;
begin
jjbjkdfsgjka;
msdfjhf;
agtdskgfk;
end;
exit;
Maximilian Ruta
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


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 16:51 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