AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit SetLength

Ein Thema von Airblader · begonnen am 6. Nov 2004 · letzter Beitrag vom 6. Nov 2004
Antwort Antwort
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#1

Problem mit SetLength

  Alt 6. Nov 2004, 16:03
Hi.
Mal was ganz banales (für mich und einen Freund).

Folgendes:
Ich hab 2 Arrays in die ich Daten einlese.
Zwischen die Daten muss nun etwas neues kommen.
Dazu muss ich ja das Array um 1 verlängern.

Delphi-Quellcode:
old_n: array [0..9] of string;
old_p: array [0..9] of string;

[...]

SetLength(old_n, Length(old_n)+1);
SetLength(old_p, Length(old_p)+1);
Allerdings bekomme ich für beide Zeilen:

Zitat:
Inkompatible Typen
Kann mich einer aufklären? Entweder ist es so kompliziert (eher nicht) oder ich hab Tomaten auf den Augen
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit SetLength

  Alt 6. Nov 2004, 16:06
Hai Airblader,
ein Array mit fester Größe kannst Du nicht verändern. Schau dir mal die Delphi-Referenz durchsuchenDynamischen Array an.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Problem mit SetLength

  Alt 6. Nov 2004, 16:06
Du musst diese array dynamisch deklarieren sprich:

Delphi-Quellcode:
old_n: array of string;
old_p: array of string;
Dann zu beginn die Anfangslänge mit Delphi-Referenz durchsuchenSetLength festlegen, diese lässt sich auch später ohne weiteres verändern.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Problem mit SetLength

  Alt 6. Nov 2004, 16:06
Es sind die Tomaten:
Mit old_n: array [0..9] of string; nimmst du dir ein statisches Array. Dessen Länge kannsrt du nicht mehr verändern.
Per old_n: array of string kannst du dir ein dynamsches nehmen, dessen Länge du dann verändern kannst. Bevor du das erste Mal da was reinschreibst, musst du aber mindestens einmal das setlength aufgerufen haben, denn sonst schreibst du ins Nirgendwo und bekommst eine AV.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem mit SetLength

  Alt 6. Nov 2004, 16:06
SetLength funktioniert nur bei dynamischen Arrays, nicht bei statischen (du hast ein statisches deklariert). Dynamisch Arrays haben bei der Deklaration keine Bereichsangabe.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Problem mit SetLength

  Alt 6. Nov 2004, 16:07
Hi Airblader,

du kannst nur dynamische Arrays vergrößern oder verkleinern.
Du musst also old_n und old_p als array of string deklarieren, und im OnCreate folgendes schreiben:
Delphi-Quellcode:
SetLength(old_n, 10);
SetLength(old_p, 10);
damit haben die arrays wieder eine Länge von 10 Elementen, und das vergrößern wird auch klappen.

Greetz
alcaeus

[add] das ich langsam bin wusste ich, aber SO langsam [/add]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#7

Re: Problem mit SetLength

  Alt 6. Nov 2004, 16:07
Für eine Antwort hau ich 10 mal den Kopf gegen Wand, bei den 4 Antworten wird es 40 mal

Danke

Ich hau nun erstmal die Wand klein und dann änder ich das
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#8

Re: Problem mit SetLength

  Alt 6. Nov 2004, 16:08
cool 4 antworten zur gleichen zeit!
  Mit Zitat antworten Zitat
6. Nov 2004, 16:12
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ist zwar beantwortet. Ich schiebe es trotzdem ma in die richtige Sparte
Antwort Antwort


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 13:46 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