Re: problem mit else nach end
Liste der Anhänge anzeigen (Anzahl: 1)
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:
ich heng das programm noch an
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. |
Re: problem mit else nach end
Fein. :thumb:
Du rückst aber immernoch nicht ordentlich ein:
Delphi-Quellcode:
Warum ist das if vor dem übergeordneten begin?
//Speichert ersten Link
begin if form1.CheckBox1.Checked then //Server Banner
Delphi-Quellcode:
Warum steht das end am Anfang der Spalte? Schließt es die Hauptprozedur? Eher nicht ...+ 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 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? |
Re: problem mit else nach end
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. |
Re: problem mit else nach end
Zitat:
|
Re: problem mit else nach end
Zitat:
|
Re: problem mit else nach end
Zitat:
|
Re: problem mit else nach end
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:
Gruß
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; Neutral General |
Re: problem mit else nach end
Zitat:
Delphi-Quellcode:
anstat:
procedure blabal;
begin djsklhgklh; oiohzgsdfhl; bhrfgsdbgjkdb; exit;
Delphi-Quellcode:
???
procedure blabal;
begin djsklhgklh; oiohzgsdfhl; bhrfgsdbgjkdb; end; |
Re: problem mit else nach end
Es wurde dir schon ein paar mal gesagt: Kein begin ohne end
Am Besten na die Tafel und 1000 mal Schreiben!!!! |
Re: problem mit else nach end
Zitat:
Delphi-Quellcode:
procedure hjsdgfjg;
begin jjbjkdfsgjka; msdfjhf; agtdskgfk; end; exit; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 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