AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C++ Strings/Zeichenketten an function übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Strings/Zeichenketten an function übergeben

Ein Thema von EWeiss · begonnen am 12. Mär 2014 · letzter Beitrag vom 12. Mär 2014
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

Strings/Zeichenketten an function übergeben

  Alt 12. Mär 2014, 17:21
Das konvertieren in C++ ist ja noch schlimmer als in Delphi

Wie kann ich eine Zeichenkette an eine Funktion übergeben?

Code:
char *sTextColorPicker[MAX_COLORPICKER_STRINGS] =
{"Red",                   //0
"Green",                  //1
"Blue",                   //2
"ColorPicker",            //3
"Cancel",                 //4
};
Language.h
Code:
static CString sTextCPicker[MAX_COLORPICKER_STRINGS];
Language.cpp
Code:
CString CLanguage::sTextCPicker[MAX_COLORPICKER_STRINGS];
Code:
void CLanguage::XMLParse(const char* FileName, CString *sText, const char* Section)
{
 ....
  sText[entry] = buffer;            //error 9
  sText[entry].Replace("\\t", "\t"); //error 10
  sText[entry].Replace("\\n", "\n"); //error 11 ' Wenn Definition so ausgelegt   CString *sText[]
}
Code:
Lng->XMLParse(Lng->szTemp, sTextColorPicker[MAX_COLORPICKER_STRINGS], "Menu");
ES will irgendwo nicht egal was ich anpacke.

Zitat:
error C2664: 'CLanguage::XMLParse' : cannot convert parameter 2 from 'char *' to 'ATL::CString *'
Definiere ich sText> so CString *sText[] gibt es diese Fehler.. hmm ja muss noch lernen

Zitat:
Error 5 error C2664: 'CLanguage::XMLParse' : cannot convert parameter 2 from 'char *' to 'ATL::CString *[]'
Error 9 error C2440: '=' : cannot convert from 'char *' to 'ATL::CString *'
Error 10 error C2228: left of '.Replace' must have class/struct/Union
Error 11 error C2228: left of '.Replace' must have class/struct/Union
Stress pur!

gruss

Geändert von EWeiss (12. Mär 2014 um 17:52 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Strings/Zeichenketten an function übergeben

  Alt 12. Mär 2014, 21:17
ok hab es jetzt soweit

Code:
Lng->XMLParse(Lng->szTemp, (CString *)sTextSettingDialog, "SettingsDialog");

void CLanguage::XMLParse(const char* FileName, CString *sInText, const char* Section)
{

}
Allerdings bekomme ich bei sInText nur den ersten eintrag vom sTextSettingDialog

Was fehlt das die anderen 54 nicht übernommen werden?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Strings/Zeichenketten an function übergeben

  Alt 12. Mär 2014, 21:56
Das konvertieren in C++ ist ja noch schlimmer als in Delphi
Mit ordentlichen Klassen kann man mit in C++ sehr sauber programmieren ... und was in Delphi mit Compilermagie klappt, lässt sich oft mit Templates oder/und überladenen Operatoren selbst implementieren, wenn man es nicht in seiner Lieblings-Bibliothek findet.

Code:
CLanguage::XMLParse(const char* FileName, CString *sInText, const char* Section)
Merkwürdiges Konstrukt, insbesondere wenn man die CString Semantik gelesen hat:
Zitat:
Even though CString objects are dynamic objects that can grow, they act like built-in primitive types and simple classes. Each CString object represents a unique value. CString objects should be thought of as the actual strings rather than as pointers to strings.
Im Klartext: CStrings verhalten sich (ungefähr) wie Strings in Delphi, es gibt keinen Grund mit irgendwelchen Zeigern rumzuhantieren.

Hier findest du eine Übersicht der Konstruktoren von CStringT, einer Verallgemeinerung von CString. Zu beachten sind die, welche pszSrc als Parameter bekommen. Dem Code nach können alle diese Stringtypen implizit in CStrings kopiert werden, ansonsten kann man es mit CString("OMG ein String!") auch explizit hinschreiben.


Ansonsten fehlt mir irgendwie der Überblick, was du überhaupt erreichen willst
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Strings/Zeichenketten an function übergeben

  Alt 12. Mär 2014, 22:18
Erst mal Danke das du überhaupt mal draufgeschaut hast.

Zitat:
Ansonsten fehlt mir irgendwie der Überblick, was du überhaupt erreichen willst
Ich habe oben ein Array of strings oder wie auch immer das in C++ ausgelegt wird.

In Delphi würde ich sage ist das ne Type ala
Delphi-Quellcode:
  TPlayState = (psError = -1, psStop = 0, psPlay = 1,
                   psIsPlaying = 2, psPause= 3,
                   psPrevTitle = 4, psNextTitle = 5,
                   psSetPlaylistTitle = 6, psGetPlaylistTitlePos = 7,
                   psSetPlaylistPos = 8, psGetSelectedTitlePos = 9,
                   psPlaylistClear = 10, psAddPlaylistTitle = 11);
Ich will jetzt nichts anderes als
Zitat:
char *sTextColorPicker[MAX_COLORPICKER_STRINGS]
an meine Function übergeben damit ich nicht in jeder Form die gleiche Function zum parsen einfügen muss.
Mein Ansatz also die Konvertierung läuft ja allerdings bekomme ich nur den ersten Eintrag übergeben

sInText entält nur den ersten Eintrag also wie im Beispiel "Red"

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Strings/Zeichenketten an function übergeben

  Alt 12. Mär 2014, 22:53
changed..

gruss

Geändert von EWeiss (12. Mär 2014 um 23:29 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz