Verzeichnisweitergabe
-
Hallo,
habe mal wieder ein kleines Problem..
Ich wähle mit einer DirectoryBox ein Verzeichnis aus und geben den Pfad weiter an ein Editfeld z.b C:\Programme\hierundda\hallo\ihr .. dieses wird wiederum hier weitergeleitet als Pfadangabe zum Ordner:
ordnerI->Add(Form3->Edit8->Text);Problem erkennt ihr vllt schon

C++ erkennt das nur mit \\ <--- 2 von denenGibt es da einen Möglichkeit das zu ändern ?
P.S. auf meinen einen Rechner hat er das so erkannt mit dem Verzeichnis auf den anderen wieder nicht.. komisch...
-
Azad187 schrieb:
Problem erkennt ihr vllt schon

C++ erkennt das nur mit \\ <--- 2 von denenne, ich bin mir sicher, dass die DirectoryBox den String richtig ausgibt
-
if (CheckBox1->Checked) { ordner->Add(Form3->Edit2->Text); }Form3->Edit1 = c:\T_I1 (ausgewählt über DirectoryListbox)
Tja wie gesagt er erwartet C:\\T_I1 ...
also scheint er es ja nicht richtig weiterzugeben...
-
Schau Dir die Variablen bitte im Debugger an.
-
Was könnte \\test ausgeben?
Was hingen gibt \test aus? und warum?
-
versteh eure Posts leider nicht

Der Umgang mit dem Debugger ist mir auch noch nicht geläufig

-
Azad187 schrieb:
Der Umgang mit dem Debugger ist mir auch noch nicht geläufig

na dan schleunigst http://www.junix.ch/bcb/help
-
Falls Du mal Deine <<\>> vervielfältigen willst.
ordner->Add(AnsiReplaceText(Form3->Edit2->Text,"\\","\\\\"));Schau unter AnsiReplaceText nach.
Ebenfalls interessant/hilfreich/lehrreich für dürfte das BCB-Thema "String-Konstanten" sowie "Der umgekehrte Schrägstrich" sein.
-
caspar_louis schrieb:
ordner->Add(AnsiReplaceText(Form3->Edit2->Text,"\\","\\\\"));Das solltest Du tunlichst vermeiden, da es in diesem Fall schlicht und ergreifend falsch ist.
-
Bei dem AnsiReplaceText macht er bei mir auch zicken...
Aber so ne Art Lösung ist schon nicht schlecht...Allerdings ärgert es mich das er das so nicht erkennt, obwohl er es am anderen PC so erkannt hat, wie ich es vorher gemacht hatte...
-
Sonderzeichen werden dargestellt durch einen Backslash (\):
'\n' Zeilenende-Zeichen (new line)
'\t' Tabulatorzeichen
'\'' Hochkomma (')
'\"' Anführungszeichen (")
'\' Backslash (\)
usw.
-
Also
Form3->Edit1->Text=DirectoryListBox1->Directory;So weise ich dem Editfeld das Directory zu das wäre z.B. C:\Programme.
Wenn das mit dem Ansireplacetext funzen würde, wäre das immer noch ein Problem da er dann C:\Programme\ , übergeben hätte müssen damit es richtig funktioniert.
Die Pfade werden immer in einer ini gespeichert und wieder aus-eingelsen beim Programmstart... aber das spielt ja keine rolle.
TStringList *ordner=new TStringList(); if (CheckBox1->Checked == true) { ordner->Add(Form3->Edit2->Text); } else {};...Am Ende werden sie halt zugewiesen
Memo3->Lines->SaveToFile(ordner->Strings[d]+Query4->Fields->Fields[0]->AsString+"_nerv.gtw");Hier wird gespeichert.. Man erkennt auch schnell das er den Ordner nicht richtig erkennt, weil er als Speichername:
Ordnername+Query.... nimmt und nicht
in den Ordner speichert + den Name der Query...
-
NOCHMAL DEUTLICHER: AN DEN ESCAPE SEQUENZEN HERUMZUPFUSCHEN WIRD AUF GAR KEINEN FALL DEIN PROBLEM LÖSEN.
-
Wenn das mit dem Ansireplacetext funzen würde, wäre das immer noch ein Problem da er dann C:\Programme\ , übergeben hätte müssen damit es richtig funktioniert.
Was hindert dich daran das fehlende Backslash an den String anzuhängen.
Hierzu wurde unter anderem auch beim AnsiString der Operator + überladen.
-
Joe_M. schrieb:
caspar_louis schrieb:
ordner->Add(AnsiReplaceText(Form3->Edit2->Text,"\\","\\\\"));Das solltest Du tunlichst vermeiden, da es in diesem Fall schlicht und ergreifend falsch ist.
@ Joe_M
So war das auch nicht gemeint. Ich hab das extra in den Code von Azad reingepackt, damit er eine Verbindung auf sich sieht und sich dann die Hilfethemen reinzieht.
-
ja gut das ist kein problem,
Form3->Edit2->Text=DirectoryListBox1->Directory+"\\";so habe ich dann halt C:\Programme\, aber das mit dem AnsiReplaceText das check ich noch net. Vllt., hilft mir ja google

-
Azad187 schrieb:
ja gut das ist kein problem,
Form3->Edit2->Text=DirectoryListBox1->Directory+"\\";so habe ich dann halt C:\Programme\, aber das mit dem AnsiReplaceText das check ich noch net. Vllt., hilft mir ja google

siehe dafür IncludeTrailingPathDelimiter
-
#include<SysUtils> ordner->Add(ordner->Add(IncludeTrailingPathDelimiter(Form3->Edit2->Text));hmm kennt er das beim C++ Builder 5 noch nicht ??
-
Der BCB5 kennt diese Funktion. Das richtige include heißt aber #include <SysUtils.hpp>
-
Braunstein schrieb:
Der BCB5 kennt diese Funktion. Das richtige include heißt aber #include <SysUtils.hpp>
Wie man auch unschwer der BCB-Hilfe hätte entnehmen können...
caspar_louis schrieb:
@ Joe_M
So war das auch nicht gemeint. Ich hab das extra in den Code von Azad reingepackt, damit er eine Verbindung auf sich sieht und sich dann die Hilfethemen reinzieht.Sorry, dann hatte ich Dich mißverstanden...
-
@Joe_M.
Ja ich hab auch schon gemerkt, daß Azad nicht so viel mit der Hilfe vorhat, deshalb die Anfütterung
.@Azad
Ich bin auch immer so ein Vorschneller, bei dem alles sofort gehen muß. Mittlerweile habe ich aber gelernt, daß die Hilfe oft die schnellste und eine gute Lösung ist. Wenn ich die Hilfe nicht verstehe, dann fehlen mir meist Grundlagen zum Verständnis dieser. Dann hilft nur noch mehr Hilfe. Sonst verstehe ich auch die Hinweise hier im Forum nicht.