mikrocontroller.net

Forum: PC-Programmierung [C++] System::String^ in char array umwandeln


Autor: Patrick B. (p51d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo miteinander

Infolge eines kleinen RTC-Projektes bin ich auf folgendes Problem 
gestossen:
Um das Jahr vom PC aus setzen zu können (wird in einer ComboBox 
eingegeben) muss ich die Zahl 2009 irgendwie in 20 und 09 zerlegen 
können, damit ich diese in einen int umwandeln kann(ist kein Problem, 
dies funktioniert) um später dem MCU zu senden, welcher alles via I2C 
der RTC übermittelt.

split.string (oder so ähnlich) funktioniert nur mit einem Trennzeichen. 
von Borland weiss ich, dass es so eine Funktion gibt, mit der man 
SubStrings herauslesen kann(man gibt Anfangsposition und Schlussposition 
an) und wenn mich nicht alles täusch sieht das etwa so aus:
String Jahr;
String Jahr_msb;
String Jahr_lsb;
Jahr_msb = Jahr.SubString(1,2);
Jahr_lsb = Jahr.SubString(3,4);

Jetzt ist meine Frage, gibts das auch (oder etwas dass das gleiche 
Bewirkt) bei Visual C++ Express 2008?

Weil so etwas wäre in diesem Zug schon recht nützlich, da ich in einem 
späteren Schritt die RTC gerne mit dem PC Synchronisieren möchte (da 
müsste ich auch irgendwie an die einzelnen Werte kommen).

Danke im foraus für die Hilfe
MFG
P51D


p.s.: meine Suche hat bisher volgender Link ergeben: 
http://support.microsoft.com/?id=311259
nur ist dies nicht ganz das, was ich möchte...

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
System::String^ ist vieles, aber ganz sicher kein C++.

In C++ gibt es den Standard-Stringcontainer der STL aus <string>. Der 
besitzt eine Methode c_str(), die einen Zeiger auf den internen 
Zeichenvektor zurückgiebt.
Der Stringcontainer besitzt auch eine substr()-Methode.

Zerlegen lässt sich das selbst in C recht simpel:
- mit sscanf() und Feldbreitenangabe
- mit einem statischen Zwischenspeicher

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So vielleicht?

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, irgendwie klappt es gerade nicht eine .cpp Datei anzuhängen. Dann 
eben so:

#include <iostream>
#include <string>

using std::string;
using std::cout;
using std::endl;

int main()
{
  string jahr = "2009"; // das ist die Ausgangsbasis, nehm ich mal an
  string a = jahr.substr(0,2);
  string b = jahr.substr(2,2);

  cout << "Jahr: " << jahr << endl;
  cout << "Die ersten beiden Ziffern: " << a << endl;
  cout << "Die letzten beiden Ziffern: " << b << endl;
  
  return 0;
}

Autor: Patrick B. (p51d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke, funktioniert.

p.s.: hab eben gerade die selbe Methode ausprobiert (MSDN sei dank)
aber Danke für die Hilfe...

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick B. schrieb:
> hallo miteinander
>
> Infolge eines kleinen RTC-Projektes bin ich auf folgendes Problem
> gestossen:
> Um das Jahr vom PC aus setzen zu können (wird in einer ComboBox
> eingegeben) muss ich die Zahl 2009 irgendwie in 20 und 09 zerlegen
> können, damit ich diese in einen int umwandeln kann(ist kein Problem,
> dies funktioniert) um später dem MCU zu senden, welcher alles via I2C
> der RTC übermittelt.
>
> split.string (oder so ähnlich) funktioniert nur mit einem Trennzeichen.
> von Borland weiss ich, dass es so eine Funktion gibt, mit der man
> SubStrings herauslesen kann(man gibt Anfangsposition und Schlussposition
> an) und wenn mich nicht alles täusch sieht das etwa so aus:
>
> String Jahr;
> String Jahr_msb;
> String Jahr_lsb;
> Jahr_msb = Jahr.SubString(1,2);
> Jahr_lsb = Jahr.SubString(3,4);
> 

> p.s.: meine Suche hat bisher volgender Link ergeben:
> http://support.microsoft.com/?id=311259
> nur ist dies nicht ganz das, was ich möchte...

F1-Taste defekt und/oder Intellisense abgeschaltet? SCNR
http://msdn.microsoft.com/en-us/library/system.str...

p.s. es gibt auch ein DateTimePicker-Control das diese Daten direkt in 
einem passenderen Format liefert...
http://msdn.microsoft.com/en-us/library/system.win...

Autor: teN crA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> F1-Taste defekt und/oder Intellisense abgeschaltet? SCNR
Vielleicht beinhaltet das Projekt mehr als drei Dateien und Intellisense 
baut sich immer noch auf. ;-)

Autor: moin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>F1-Taste defekt und/oder Intellisense abgeschaltet? SCNR
>http://msdn.microsoft.com/en-us/library/system.str...

War doch schon erledigt, was soll denn dieser Unfug noch? Zudem hat er 
sich zuvor schon bedankt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.