Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi array of PChar nicht möglich? (https://www.delphipraxis.net/99165-array-pchar-nicht-moeglich.html)

hugo1990 7. Sep 2007 21:48


array of PChar nicht möglich?
 
Wenn ich in einem dynamischen Array des Typen PChar etwas speichere und dann wieder auslesen möchte, kommt da nur sch*** raus. Entweder er steht in jeder Zeile der Inhalt, der letzten Zeile oder es sind sind kleine Teile der Zeile vorhanden.
Also noch mal meine Frage, kann man einen array of PChar anlegen oder nicht? Wenn nein, warum nicht und wenn ja, wie?

mkinzler 7. Sep 2007 21:50

Re: array of PChar nicht möglich?
 
Ein Pchar ist ja ein Zeiger auf eine Zeichenkette. Also wäre ein Array of PChar ein Array von Zeigern und kein Array von Zeichenketten. Wie schreibst/liest du den Array?

hugo1990 7. Sep 2007 21:57

Re: array of PChar nicht möglich?
 
also ich habe das zum beispiel so gemacht:
Delphi-Quellcode:
var Lines:array of PChar;
    i:Integer;
...
SetLength(Lines,5);
for i:=0 to 4 do
 begin
 Lines[i]:=PChar(IntToStr(i));
 end;
Wenn ich das jetzt in nem Memo ausgeben würde also z.B. so:
Delphi-Quellcode:
for i:=0 to 4 do
 begin
 Memo1.Lines.Add(String(Lines[i]));
 end;
Dann zeigt er mir nur 4en an.

mkinzler 7. Sep 2007 21:59

Re: array of PChar nicht möglich?
 
Wie gesagt handelt es sich hier nur um einen Array von Zeigern.

Dezipaitor 7. Sep 2007 22:22

Re: array of PChar nicht möglich?
 
Entweder für jeden Eintrag GetMem
oder du verwendest gleich einfach String.

hugo1990 7. Sep 2007 22:28

Re: array of PChar nicht möglich?
 
Zitat:

Zitat von Dezipaitor
Entweder für jeden Eintrag GetMem
oder du verwendest gleich einfach String.

Sonst verwende ich ja auch immer String, nur da ich eine DLL schreiben möchte ist String nicht unbedingt so gut. werds mal versuchen mit GetMem

Progman 7. Sep 2007 22:41

Re: array of PChar nicht möglich?
 
man kann auch im Zusammenhang mit Dlls Strings verwenden, man muss nur in der Projectdatei bei uses als erstes ShareMem eintragen. Hat bei mir bisher immer funktioniert, sogar mit StringLists.

Dezipaitor 7. Sep 2007 22:45

Re: array of PChar nicht möglich?
 
ShareMem bedeutet den DLLtot für andere Sprachen.

mkinzler 8. Sep 2007 07:43

Re: array of PChar nicht möglich?
 
Willst du den Arraaim Interface der Dll verwenden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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