Array wird nicht richtig beschrieben!?
-
Hallo liebe Freunde der Programmierung!
Ich nutze den c++ Builder 2007!
Ich habe in meiner Header Datei ein char Array deklariert, was überall und für jede Klasse zu erreichen sein soll.
public: // Benutzer Deklarationen char Pfad[128];
Desen Array Initialisiere ich im Konstruktor der selben Unit mit 0. Dies mache ich mit Hilfe der Funktion memset:
memset(Pfad, 0x00, 128);
Mein Problem ist jetzt, das das Array nicht richtig beschrieben wird, das Heißt beim beschreiben fehlen die ersten 4 Zeichen.
Wenn z.B. c:\\hallo.txt in das Array kopiert wird, dann steht nur hallo.txt in dem Array!
strcpy(Pfad, PfadStr.c_str());
Ich hoffe mir kann jmd helfen, wie ich das Problem beseitigen kann!
MfG
MaX
Ps: Wenn weitere Angaben zum Programm nötig sind, gibe ich die gerne weiter um das Problem einzugrenzen!
-
Hallo,
Warum nimmst du überhaupt ein char-Array und nicht AnsiString oder std::string?
-
Hmmm das wäre auch ne Idee......ich teste das mal durch!
Danke
-
Wie kann ich aber jetzt eine Methode Aufrufen und den AsiString Pfad übergeben?
Der Ansistring Pfad ist Public im Header einer Klasse deklariert und soll anderen Klasse zur Verfügung stehen!?
MfG
-
Bastele dir Getter und Setter dafür. Z.Bsp. so
class test { private: AnsiString path; public: AnsiString getPath() const { return path; } void setPath(const AnsiString& str) { path = str; } };
-
kann ich das nicht einfach beim Methodenaufruf mit übergeben?
z.B.
AnsiString Test; TestClass.ErsteMethode(Test);
MfG
-
Das von mir oben gezeigt würde dann so verwendet.
test test1; test1.setPath("c:\\hallo"); // Pfad setzen AnsiString PfadInKlasse = test1.getPath();
Beantwortet das deine Frage?
-
Jo im Grunde schon
Danke schon mal....wenn noch was unklar ist...würde ich mich melden!
Ich probiere es jetz erstmal so.
MfG