AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi [Non VCL] Dynamisches Array erstellen, füllen & ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

[Non VCL] Dynamisches Array erstellen, füllen & ausgeben

Ein Thema von Back2Code · begonnen am 30. Jul 2012 · letzter Beitrag vom 31. Jul 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#1

[Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 30. Jul 2012, 11:02
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.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 30. Jul 2012, 11:12
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#3

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 30. Jul 2012, 11:17
Zitat:
Aber warum mal "Namen" und dann "Items"?
Hab ich wohl noch vergessen zu ändern, da ja jeder gespeicherte Name im Array ein "Index" ist.


Zitat:
Und was passiert wenn man als "Anzahl" z.B. Anzahl eingibt?
Noch nicht getestet. Da ich keine Exception eingebaut habe wirds zu nem Fehler kommen.


Und der Speicher wird nicht freigegeben Dass es nicht perfekt ist, war mir vornerein klar ich bin ja auch noch ein Anfänger

Geändert von Back2Code (30. Jul 2012 um 11:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 30. Jul 2012, 11:23
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#5

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 30. Jul 2012, 11:27
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
Ich verzeih dir

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.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 30. Jul 2012, 11:30
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 31. Jul 2012, 07:20
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
Ich verzeih dir

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.
Warum verzeihen ?
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:
Wie gibt man den Speicher denn genau wieder frei am Ende?
Setze dein Array doch auf den Urzustand zurück .. der wäre wenn du nur Strings verwendest auf die länge "0"
Hätte dir p80286 auch verraten wenn du etwas freundlicher gewesen wärest.


gruss

Geändert von EWeiss (31. Jul 2012 um 07:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 31. Jul 2012, 08:06
Zitat:
ach ja gibst Du den alozierten Speicher auch mal wieder frei?
Kinders, ich glaube ich werde alt, welchen Speicher soll man warum wieder freigeben?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#9

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 31. Jul 2012, 08:09
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?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: [Non VCL] Dynamisches Array erstellen, füllen & ausgeben

  Alt 31. Jul 2012, 08:15
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?
Nö. Ein Danke hätte gereicht.
Sowas kommt immer gut an und sind doch nur 4 nee warte mal 5 Buchstaben.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:20 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