![]() |
[Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Delphi-Quellcode:
// Dynamisches Array erstellen, füllen & ausgeben
program Project2; {$APPTYPE CONSOLE} uses SysUtils; var anzahl,anzahl1,i,o: integer; eingabe: string; ListArray: array of string; valid: boolean = True; begin WriteLn('########################################'); WriteLn('Wieviele Namen moechten Sie eintragen?'); ReadLn(anzahl); SetLength(ListArray, anzahl); for i := 0 to anzahl - 1 do begin if i = anzahl -1 then begin WriteLn('Geben sie bitte den letzten Namen ein: '); end else WriteLn('Geben sie bitte den Namen ein: '); ReadLn(ListArray[i]); end; WriteLn(''); WriteLn('Alle Namen wurden eingespeichert!'); WriteLn(''); WriteLn('Ausgabe aller Namen erfolgt...'); WriteLn(''); for o := 0 to anzahl - 1 do begin WriteLn(ListArray[o]); end; WriteLn(''); WriteLn(' Aktueller Indexstand : ' + IntToStr(anzahl)); while valid = True do begin WriteLn(' Geben Sie einen Index an, um das entsprechende Item auszugeben: '); ReadLn(anzahl1); if anzahl1 > anzahl then begin WriteLn('Item existiert nicht!'); end else begin WriteLn(ListArray[anzahl1-1]); Valid := False; end; end; WriteLn(''); WriteLn('########################################'); WriteLn('Programmende'); WriteLn(''); ReadLn; end. |
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Seehr hübsch.
Aber warum mal "Namen" und dann "Items"? Und was passiert wenn man als "Anzahl" z.B. Anzahl eingibt? Außerdem ist mir der Eigentliche Programmablauf nicht so ganz klar, aber das liegt wohl an der sehr individuellen Formatierung. Übrigens ist ein String als Element eines Dyn.Arrays nicht so geeignet,eine Stringlist wäre da geeigneter. ach ja gibst Du den alozierten Speicher auch mal wieder frei? Gruß K-H |
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Zitat:
Zitat:
Und der Speicher wird nicht freigegeben :o Dass es nicht perfekt ist, war mir vornerein klar ich bin ja auch noch ein Anfänger :) |
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Da hab' ich wohl etwas falsch verstanden.
Nichts für ungut, da Du ein Anfänger bist, war es unverzeilich Dich auf Schwächen in Deinem Programm hin zu weisen. Gruß K-H |
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Zitat:
Wie gibt man den Speicher denn genau wieder frei am Ende? Und wie könnte man am besten am Anfang abfragen, dass nur Zahlen bei der Anzahlabfrage eingegeben werden ansonsten ne Fehlermeldung ausgeben. Hab eben schon was mit ne IF Abfrage versucht nur das wollte nicht so ganz.:oops: |
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Drei Dinge:
1) Das ganze hat nichts mit NonVCL zu tun. Du benutzt sie zwar nicht, aber da man für Arrays die VCL ohnehin nicht braucht, ist dies keine Besonderheit deines Codes. 2) Wenn du schon weisst, dass der Code Schwächen hat, dann sollte dir doch auch klar sein, dass der kaum als Musterbeispiel für eine Code-Lib taugt. 3) Das Beispiel ist willkürlich und unnötig in einen Kontext gebracht. Ein kurzes allgemeines Tutorial mit Erläuterungen zu z.B. SetLength() wäre verständlicher. Ein auscodiertes Beispiel würde dort dann eher als Anwndungsbeispiel Platz finden. Punkt 2 ist imho der ungünstigste. Wenn man schon Muster, Tipps für andere, gerade Anfänger, posted, sollte alles so sauber und best-practice sein wie es eben nur geht. Fehleranfälliger und mäßig formatierter unkommentierter Code ist wertfrei. |
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Zitat:
Es war Ironisch von p80286 gemeint. Denke eher du solltest dir selbst verzeihen das du nicht verstanden hast das er dir nur Helfen wollte. Gerade dann wenn man Anfänger ist sollte man Dankbar sein über die Hilfe die einem widerfährt. Das ist was ich hier so sehr vermisse ein Einfaches "DANKE" Anstelle rumzumosern dafür das man Tip's und Hilfestellungen umsonst bekommt. Ansonsten zu deiner Frage. Zitat:
Hätte dir p80286 auch verraten wenn du etwas freundlicher gewesen wärest. gruss |
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Zitat:
|
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Ich versteh nicht, wieso hier immer alle gleich so eingeschnappt sind, wenn man eine präzise Frage stellt..Soll ich noch 100 Herzen + Bitte posten damit es "freundlicher" rüber kommt?
|
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Zitat:
Sowas kommt immer gut an und sind doch nur 4 nee warte mal 5 Buchstaben. gruss |
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Was hat eigentlich VCL und NonVCL mit einem Typen zu zun, der eh nichtvisual ist und mit "VCL" sowieso nix zu tun hat?
|
AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Zitat:
b) "und mit "VCL" sowieso nix zu tun hat" eben drum. Zitat:
(Gehört meiner Meinung nach zum guten Ton den Speicher wieder sauber zu hinterlassen) @EWeiss :thumb: Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr. |
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