String zerlegen, Visual Studio 2003 .NET
-
Hi,
ich habe ein ziemlich nerviges Problem.
Obwohl es eine gängige Sache ist, einen String in kleinere Teilstrings zu zerlegen und ich auch schon seit heute morgen nach einer Lösung suche, bekomme ich es einfach nicht auf die Reihe.Im Moment sieht der Code wie folgt aus:
String* tempstr[]; String* csvdatei; StreamReader* sr_kartendatencsv; String* einlesencsv; // Dateinamen Einlesen csvdatei=this->txt_csvdatei->Text; // Datei öffnen try { sr_kartendatencsv= new StreamReader (csvdatei); einlesencsv = sr_kartendatencsv -> ReadLine(); } catch (...) { MessageBox::Show("Datei konnte nicht geöffnet werden","Fehler",MessageBoxButtons::OK, MessageBoxIcon::Error); } tempstr=einlesencsv->Split(' ');
Zur Zeile 18 im Bsp oben kommt dann folgender Fehler:
d:\Visual Studio Projects\csv-in-sql\Form1.h(174) : error C2664: 'System::String __gc *System::String::Split(__wchar_t __gc[]) __gc[]': Konvertierung des Parameters 1 von 'char' in '__wchar_t __gc[]' nicht möglich
Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
AssemblyInfo.cppSo in der Art, nur mit etwas anderem Syntax hatte ich es schon mal unter VS 2005 funktionsfähig, den Code hab ich auch schon ausprobiert, funzt hier leider nicht.
Hab es auch schon mit verschiedenen anderen Typen versucht, sprich char un was es nich alles gibt
aber leider auch ohne brauchbare Ergebnisse.
Bin im Mom völlig Ratlos.
-
Baschti-aus-S schrieb:
ich habe ein ziemlich nerviges Problem.
Was auch im Ansi C++ Forum nichts zu tun hat:
Sowohl String als auch StreamReader sind C++/CLI, nicht C++. Und ich glaube das dort auch kein * sondern ein ^ für Managed Typen des .Net Frameworks verwendet wird.
ACHSO: 2003 unterstützt kein C++/CLI!
-
Was für eine Bibliothek benutzt du da? Standard-C++ ist es jedenfalls nicht (dort heißen die Strings
std::string
). Stell die Frage am Besten im richtigen Unterforum (z.B.. WinAPI oder was auch immer am Besten passt), da wird dir vermutlich eher geholfen.
-
Du bist im falschen Forum, dein Code sieht nach C++/CLI aus.
Aber probier mal:
einlesencsv->Split(L" ");
Die Split-Methode verlangt einen WideChar-String, kein einzelnes Zeichen.
Und warum steht der Code in der Header-Datei "form1.h"???
-
*g* das ist ja noch Managed C++...
Simon
-
theta schrieb:
*g* das ist ja noch Managed C++...
Nein, dann müssten sehr viele Unterstriche im Code existieren.
-
asc schrieb:
theta schrieb:
*g* das ist ja noch Managed C++...
Nein, dann müssten sehr viele Unterstriche im Code existieren.
Ahja, nicht gut geschaut.
Du hast ja die Ursache schon gepostet: Compiler ist der für Managed C++, der Code C++/CLI...
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Moin
Ok, eins nach dem anderen ^^
Sry für die falsche Einsortierung des Beitrags.
Die string.h und die stdio.h stehen drinn.
Mit einlesencsv->Split(L" "); läuft es leider auch nich, kommt die gleiche Fehlermeldung.
Der Code steht in der Header-Datei "form1.h" da, wenn man in der Windowsform auf beispielsweise einen Button doppelt klickt, automatisch die Header-Datei geöffnet wird und der Courser an der Stelle für das Event Click steht, deshalb hab ich da auch den Programmcode stehen.
@theta & asc
Also ist die Programmiersprache, die ich benutzt hab, gänzlich ungeeignet für VS2003?
-
Baschti-aus-S schrieb:
Die string.h und die stdio.h stehen drinn.
Was beides keine C++ Header sind.
#include <string> // Für std::string #include <cstdio> // C-Kompatibilitätsheader (IO) - Wozu? // Tendenziell würde ich unter ANSI C++ eher zu <iostream> & Co greifen
Zudem solltest du dich auf die Sprache einigen:
a) (ANSI) C
b) (ANSI) C++
c) C++/CLI (ab VC2005 möglich, erfordert .Net Framework)
d) Managed C++ (ab VC2002? möglich, sehr kryptisch)Und erst wenn du dich auf die Sprache festgelegt hast, ist eine weitere Hilfestellung sinnvoll.
Baschti-aus-S schrieb:
@theta & asc
Also ist die Programmiersprache, die ich benutzt hab, gänzlich ungeeignet für VS2003?
Ja. C++/CLI wurde erst mit dem Visual Studio 2005 eingeführt. Der Vorgänger hiervon war Managed C++, mit einer sehr kryptischen Syntax. Aber bitte in Zukunft: ANSI C++ ist eine andere Sprache als C++/CLI oder Managed C++ (Die zwei letzteren gehören in dieses Unterforum).
cu André
-
Okay, danke für die Lehrstunde.
Dann wird es das Beste, ich kümmer mich um ne Expressversion von 2005 bzw. 2008 und lass die Sache mit dem VS2003
Dann is wenigstens alles wie gehabt ^^
MFG
Baschti
-
Baschti-aus-S schrieb:
Dann wird es das Beste, ich kümmer mich um ne Expressversion von 2005 bzw. 2008 und lass die Sache mit dem VS2003
Dann is wenigstens alles wie gehabt ^^
Selbst dann bezweifel ich das dein Code okay ist (Zumindest bei meinen recht begrenzten C++/CLI-Kenntnissen gehe ich eher von "String ^" statt "String *" u.ä. vor).