Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Array of String" leeren (https://www.delphipraxis.net/19932-array-string-leeren.html)

himitsu 11. Apr 2004 11:20

Re: "Array of String" leeren
 
Dann sollte aber setlength gehn?

Delphi-Quellcode:
Var MyArray: Array of String;

SetLength(MyArray, 0);

H3v3n 11. Apr 2004 11:21

Re: "Array of String" leeren
 
Zitat:

Zitat von MathiasSimmack
Zitat:

Zitat von H3v3n
Ich brauche es zusätzlich auch noch so, das alle Nummern des Arrays neu vergeben werden können ...

Also komplett löschen? Da nehme ich immer
Delphi-Quellcode:
SetLength(dynArray,0);

Zitat:

Zitat von H3v3n
Ich möchte ein "Array of String" leeren. (komplett) Ich habe es schon mit setlength und zeromemory versucht, aber beides hat merkwürdigerweise nicht geklappt.


himitsu 11. Apr 2004 11:24

Re: "Array of String" leeren
 
Das hab ich schon gesehn - aber es sollte dennoch gehn.

Vielleicht solltest du mal ein bissl vom Source zeigen, eventuell ist da ja ein anderer Fehler drin.

MathiasSimmack 11. Apr 2004 11:27

Re: "Array of String" leeren
 
Tut mir leid, das habe ich nicht gesehen. Aber bei mir hat´s mit "SetLength" funktioniert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s : array of string;
  i : integer;
begin
  SetLength(s,10);
  for i := 0 to 9 do
    s[i] := Format('Eintrag %d',[i]);


  for i := low(s) to high(s) do
    Memo1.Lines.Add(s[i]);

  // Array leeren
  SetLength(s,0);

  // und mal gucken, dass nichts mehr da ist
  SetLength(s,1);

  // bei mir eine leere Box:
  ShowMessage(s[0]);
end;
Und mit "ZeroMemory":
Delphi-Quellcode:
ZeroMemory(@s[0],high(s));
ging´s auch.

H3v3n 11. Apr 2004 11:41

Re: "Array of String" leeren
 
Naja, sorry, aber bei mir geht das absolut nich :( Gibt es da nicht noch eine Lösung? :?

Sharky 11. Apr 2004 11:46

Re: "Array of String" leeren
 
Zitat:

Zitat von H3v3n
Naja, sorry, aber bei mir geht das absolut nich :( Gibt es da nicht noch eine Lösung? :?

a) Ohne etwas Quellcode kann dir keiner helfen ;-)
b) Schreibe doch einmal was Du machen möchtest!! Eventuell ist eine StringList ja doch besser für dich.

H3v3n 11. Apr 2004 11:51

Re: "Array of String" leeren
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von H3v3n
Naja, sorry, aber bei mir geht das absolut nich :( Gibt es da nicht noch eine Lösung? :?

a) Ohne etwas Quellcode kann dir keiner helfen ;-)
b) Schreibe doch einmal was Du machen möchtest!! Eventuell ist eine StringList ja doch besser für dich.

Also, na gut.

Ich baue einen Chatbot für ICQ. Dieser hat Bedingungen (Fragen gestellt, hat diese UIN den Bot beleidigt usw.) So und jetzt muss ich Bedingungen aus einer "Datenbank" (INI-File) lesen und diese auswerten. Aber da die schöne Funktion Split (irgendwo mal in einem Tipps & Tricks-Verzecihnis gefunden, nachgeschrieben dann) immer nur an den Array of String anhängt, muss ich ihn leeren. Und deshalb brauche ich eine Funktion die ALLES in dem Array zurücksetzt, als währe er noch gar nicht definiert worden. Jetzt mal ein wenig Code:

Code:
bedingok := 0;
splited2 := split(datenini.ReadString(IntToString(i), 'bedingungen', ''), '|');
for d:=0 to length(splited2)-1 do begin
if not (splited2[d] = '') then
begin
// HIER müsste ich jetzt splited3 zurücksetzen ...
splited3 := split(splited2[d], ':');
end;



if splited3[1] = 'NONE' then
begin
splited3[1] := '';
end;

if (ini.ReadString(UIN, splited3[0], '') = splited3[1]) then
begin
bedingok := bedingok + 1;
end;

end;
Hoffe das der Code soweit verständlich ist ...

himitsu 11. Apr 2004 12:05

Re: "Array of String" leeren
 
Nachvollziehen kann ich das nicht, den mit

Delphi-Quellcode:
splited3 := split(splited2[d], ':');
wird splited3 überschrieben und nicht's angehängt.

H3v3n 11. Apr 2004 12:48

Re: "Array of String" leeren
 
Zitat:

Zitat von himitsu
Nachvollziehen kann ich das nicht, den mit

Delphi-Quellcode:
splited3 := split(splited2[d], ':');
wird splited3 überschrieben und nicht's angehängt.

Split ist eine eigenprogrammierte Funktion :roll:

himitsu 11. Apr 2004 13:11

Re: "Array of String" leeren
 
Die Funktion selber ist dabei doch egal, denn hier kommt es mal nur auf die Art der Zuweisung an:

Code:
Variable [color=red][b]:=[/b][/color] Funktion;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.
Seite 2 von 2     12   

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