Hallo alle zusammen,
ich habe bei Lazarus ein zweidimensionales Array (Array of Array [1..3] of String) und möchte nun, dass ich bestimmte Zeilen löschen kann. Allerdings ohne Enstehen von Lücken.
Ich habe schon gegoogelt und auch in diesem Forum einige Beiträge gefunden, aber bis jetzt bin ich damit noch auf keine Lösung gestoßen.
Danke schonmal im Voraus und LG, Tessi
Zeile eines Array löschen ohne Entstehung einer Lücke
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Zeile eines Array löschen ohne Entstehung einer Lücke
Schau dir mal die TStringList an. Ist eine dynamische Liste die dein Problem lösen sollte
Man kann in der StringList im Object auch weitere Stringlists Speichen wenn nötig.
Andreas
Man kann in der StringList im Object auch weitere Stringlists Speichen wenn nötig.
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Zeile eines Array löschen ohne Entstehung einer Lücke
Also ich denke nicht, dass ich das Problem über eine TStringList lösen kann...
Gibt es nicht einen Weg das komplette Array als Ganzes zu speichern?
LG, Tessi
Gibt es nicht einen Weg das komplette Array als Ganzes zu speichern?
LG, Tessi
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Zeile eines Array löschen ohne Entstehung einer Lücke
Verwende doch die TFPGList Klasse, die kümmert sich für dich darum.
Wenn es unbedingt ein Array sein muss kannst du einfach mit Move alle Elemente drüber eins nach unten Kopieren und dann mit setLength den Array kleiner machen:
sollte es tun
Wenn es unbedingt ein Array sein muss kannst du einfach mit Move alle Elemente drüber eins nach unten Kopieren und dann mit setLength den Array kleiner machen:
Code: Alles auswählen
Move(Arr[i+1], Arr[i], (len-i-1)*Sizeof(DeinTyp));
SetLength(Arr, len-1);