Problem mit Globaler Variabel
-
Declaration der Variable
-------------------------------------------------------------------------------- #include <fstream.h> #include <iostream.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- char *Keywords[]= { "leer" } ;
Zuweisug der Variable
void __fastcall TForm1::FormCreate(TObject *Sender) { int i; i=0; char *word; AnsiString Tempword; Memo1->Lines->LoadFromFile("syntax.txt"); while(i<Memo1->Lines->Count) { Tempword=Memo1->Lines->Strings[i]; Keywords[i]=Tempword.c_str(); i++; } }
Weis jemand wieso dies nicht klappt ? Scheinbar wird die Variablle nicht weitergeleitet ?
-
mc-ip schrieb:
Weis jemand wieso dies nicht klappt ? Scheinbar wird die Variablle nicht weitergeleitet ?
Ja, weil Du Die Größe von Keywords zum Zeitpunkt der Initialisierung festlegst.
Für solche Aktionen nimmt man vectoren.
epidemic
-
SRY,
ich habe noch nie mit vektoren gearbeitet, wie müsste ich meinen Source ändern ?
-
#include <vector> using namespace std; ... //Deklaration des Vectors vector<AnsiString> Keywords; //In Deinem Code ersetzst Du die Stelle //Keywords[i]=Tempword.c_str(); //durch Keywords.push_back(Tempword.c_str()); //Ausgabe des jeweiligen Strings //z.Bsp Zeile 2 //ShowMessage(Keywords[1]);
Keine Memoryleaks,bessere Performance
epidemic
-
Ihr solltet euch alle mal besser über die Verwendung des Rückgabewertes von c_str() informieren!
-junix
-
junix schrieb:
Ihr solltet euch alle mal besser über die Verwendung des Rückgabewertes von c_str() informieren!
-junix
Daß Du schon immer ein oberschlauer Moderator warst, wußte ich ,
aber vielleicht klärst Du mich kurz aber "Otto Normalverbraucher" tauglich
auf, was an meine Hilfestellung falsch ist.
-
Ich sag dir, was an der Hilfestellung falsch ist: Die Verwendung von c_str() (wie ich es schon angetönt hatte.)
Wenn du dich mal über die Klassenmethoden die du verwendest informieren würdest, dann wüsstest du wovon ich spreche. Aber nein, wir verwenden lieber ne Lösung die wir irgendwo - aus dem Zusammehang gerissen - gesehen haben und schreien dann lauthals, wenn man darauf aufmerksam gemacht wird, dass da was nicht ganz sauber ist... And now, go and visit de VCL-Help or the FAQ!
-junix
-
Dann sag mir mal eine bessere lösung.
Also um es genauer zu sagen...
ich möchte Syntax-High. wie im FAQ-beschrieben betreiben, bei mir soll er sie Keywords nicht aus einem vordef. Array nehmen sondern aus einer Datei
-
junix schrieb:
Ich sag dir, was an der Hilfestellung falsch ist: Die Verwendung von c_str() (wie ich es schon angetönt hatte.)[/code]
Da gebe ich Dir Recht.
Wenn Du es sooo eng siehst so wäre es 100% SAUBER:Keywords.push_back(Tempword);
//anstatt
Keywords.push_back(Tempword.c_str());Aber nein, wir verwenden lieber ne Lösung die wir irgendwo - aus dem Zusammehang gerissen - gesehen haben
Nicht ganz , mit STL kenne ich mich, möchte ich behaupten durchaus gut aus
und schreien dann lauthals, wenn man darauf aufmerksam gemacht wird, dass da was nicht ganz sauber ist...
Auch nicht ganz, ich verteidige mich gegen Erbsenzählerei und Stichwortkritiken.
Oder ist das bei den Moderatoren nicht erlaubt("Schöne neue Welt" müßte Dir ein Begriff sein..)And now, go and visit de VCL-Help or the FAQ!
Ich würde Dir, falls Du einen schlechten Tag hast/hattest,
einen guten Film(z.Bsp. "Die fabelhafte Welt der Amelie") oder ein gutes Buch empfehlen.Danach würdest Du vielleicht einsehen, daß Deine Überheblichkeit etwas über das Ziel hinausschießt.
Liebe Grüße
epidemic
-
epidemic schrieb:
junix schrieb:
Ich sag dir, was an der Hilfestellung falsch ist: Die Verwendung von c_str() (wie ich es schon angetönt hatte.)
Aber nein, wir verwenden lieber ne Lösung die wir irgendwo - aus dem Zusammehang gerissen - gesehen habenNicht ganz , mit STL kenne ich mich, möchte ich behaupten durchaus gut aus
Tja, leider ist die STL nicht die VCL... und dein Statement hat auch nix mit der Verwendung von c_str() zu tun...
epidemic schrieb:
Auch nicht ganz, ich verteidige mich gegen Erbsenzählerei und Stichwortkritiken.
Das hat nix mit erbsenzählerei sondern mit sauberer Programmierung zu tun... aber mir scheint es gibt immer mehr leute die auf saubere programmierung pfeiffen und solche welche den Mahnfinger erheben als Erbsenzähler beschimpfen...
epidemic schrieb:
Oder ist das bei den Moderatoren nicht erlaubt("Schöne neue Welt" müßte Dir ein Begriff sein..)
süss... haste n neues buch zu Weihnachten gekriegt? Nur weil man dein Gehetze nicht einfach unkommentiert stehen lässt, schreit man gleich "Zensur"? tut mir ja leid, dass ich noch etwas pulver in der HInterhalt gehalten habe um einer weiteren Attacke deinerseits zu widerstehen... c'est la vie.
epidemic schrieb:
Ich würde Dir, falls Du einen schlechten Tag hast/hattest,
einen guten Film(z.Bsp. "Die fabelhafte Welt der Amelie") oder ein gutes Buch empfehlen.Wie kommst du darauf, dass ich nen schlechten Tag hatte? Wenn jemand auf einen - völlig neutralen - Hinweis gleich nen unflätigen Ton anschlägt, dann hab ich hald manchmal auch keine lust einfach nur so mit mir umzuspringen....
epidemic schrieb:
Danach würdest Du vielleicht einsehen, daß Deine Überheblichkeit etwas über das Ziel hinausschießt.
Die Überheblichkeit pack ich nur aus, wenn ich auf solche typen wie dich treffe, welche das Gefühl haben, man müsse ihnen alles vorkauen, und was sie nicht gleich beim lesen verstehen sei keine Überlegung wert...
So, und jetzt ende der debatte in diesem Thread. Entweder eröffnest du nen neuen Thread im OT-Forum oder du wendest dich per Mail an mich.
aus.
-junix
-
He Ladys,
das hat nichts mit meinem Problem zu tun.
Ich freue mich zwar wenn ich eine kleine disk. auferlegt habe,
jedoch bringt mich dies kein schreit näher an mein Problem