Stringverarbeitung
-
btw wenn ich euch mal eben kurzz beim Klug******* unterbrechen dürfte
: AnsiContainsStr benötigt genau wie die meisten komplexeren Stringmanipulationsmethoden StrUtils.hpp
deshalb kennt er das nicht.[ Dieser Beitrag wurde am 06.05.2003 um 08:08 Uhr von dreaddy editiert. ]
-
*g*
ihr seit ein paar Nasen
-
AnsiContainsStr ist bei bcb5pro noch nicht dabei und die sysutils.hpp ist bereits in der vcl.h inkludiert!
-
Wie kann ich jetzt beispielsweise eine Suche mit "Pos" wiederholen?
In der Hilfe steht das Beispiel...AnsiString S = " 123.5"; int p; // Leerzeichen in Nullen konvertieren while ((p = S.Pos(' ')) > 0 ) S[p] = '0';
Funktioniert ja auch recht gut. Nur...
wenn ich nun diese Funktion etwas umbaue, so das mir das Programm den Dateipfad angibt, läuft mir der Compiler in eine Endlos-Schleife:AnsiString Datei = Application->ExeName;
String Pfad;
int p;
while ((p = Datei.Pos('\')) > 0 )
Pfad = Datei[p];
-
Und dies hier wiederholt die ganze Sache leider nicht:
String Datei = Application->ExeName; String Pfad; int p; int w = 0; while ((p = Datei.Pos('\\')) > 0 && w<Datei.Length()) { Pfad = Datei; Pfad.SetLength(p); w++; } //Das Programm hört nach dem ersten "Fund" auf.
-
Ich blick nicht durch...... Was soll dir die Schleife bringen?
Ich meine Pfad ist doch immer gleich ( da sich "p" ja nicht verändert, da du ja
an "Datei" auch nichts änderst??? ).........
MFG Aoeke[ Dieser Beitrag wurde am 05.05.2003 um 19:23 Uhr von Aoeke editiert. ]
-
Ach so, also...
Application->ExeName ist doch der Dateinamen der *.exe: Bsp.: C:\Eigene Dateien\Projekt1.exe
Wenn ich jedoch den Pfad haben möchte:
C:\Eigene Dateien\Also muss ich doch nach dem letzten "\" suchen und alles was dannach noch folgt untern Tisch fallen lassen.
Oder gibt es da eine leichtere Variante?
-
mensch mensch mensch... nimm mal das brett vor deinem kopf weg!
bcb starten, F1 drücken, ExtractFilePath oder ExtractFileDir eintippen, und lesen was da steht!
p.s. nächstes mal gleich kopf einschalten...
-
Das geht ja einfach!
Danke!
-
Original erstellt von Sunday:
AnsiContainsStr ist bei bcb5pro noch nicht dabei und die sysutils.hpp ist bereits in der vcl.h inkludiert!also bei mir ist:
void __fastcall TForm1::FormCreate(TObject *Sender) { AnsiContainsStr("hallo", "ha"); } [C++ Fehler] Unit1.cpp(20): E2268 Aufruf der undefinierten Funktion 'AnsiContainsStr'
im Gegnsatz dazu läuft
#include "StrUtils.hpp" void __fastcall TForm1::FormCreate(TObject *Sender) { AnsiContainsStr("hallo", "ha"); }
problemlos durch, könnte dadran liegen das Sysutils != StrUtils
Ausserdem hat er die Methode wie er schreibt in der Hilfedatei gefunden(ich denke mal in seiner) also hat er auch BCB6.
[ Dieser Beitrag wurde am 06.05.2003 um 08:16 Uhr von dreaddy editiert. ]