Oppure

Loading
19/07/12 15:40
g181
vc++ tasto del con stringhe
Ciao a tutti, sto facendo un programa in vc++ in cui devo simulare il tasto del in una textbox.
Questo tasto deve cancellare un carattere: prova dopo aver schiacciato del prov.
A questo punto ho fatto il codice che gestisce la stringa e lo fa:

codice:
int i=0;
IntPtr p = Marshal::StringToHGlobalAnsi(textBox1->Text);
char *s = static_cast<char*>(p.ToPointer());
while(s[i+1]!='vc++ tasto del con stringhe
Ciao a tutti, sto facendo un programa in vc++ in cui devo simulare il tasto del in una textbox.
Questo tasto deve cancellare un carattere: prova dopo aver schiacciato del prov.
A questo punto ho fatto il codice che gestisce la stringa e lo fa:

codice:
int i=0;
IntPtr p = Marshal::StringToHGlobalAnsi(textBox1->Text);
char *s = static_cast<char*>(p.ToPointer());
while(s[i+1]!='{parsed_message}'){i++;}
s[i]='{parsed_message}';
String^ str = gcnew String(s);
textBox1->Text=str;
Marshal::FreeHGlobal(p);


e fin qui tutto funziona.
dopo di che dato che questo tipo di gestione stringhe la usero un po ho fatto una funzione:

codice:
    /// funzioni
    char* StringToChar(String^ s){
        IntPtr p = Marshal::StringToHGlobalAnsi(s);
        char *c = static_cast<char*>(p.ToPointer());
        Marshal::FreeHGlobal(p);
        return c;
    }
    System::String^ CharToString(char* c){
        String^ s = gcnew String(c);
        return s;
    }
    /// funzioni


e il codice che la richiama:

codice:
int i=0;
char* s=StringToChar(textBox1->Text);
while(s[i+1]!='{parsed_message}'){i++;}
s[i]='{parsed_message}';
textBox1->Text=CharToString(s);


da qualche parte in questi codici ci sara un errore, ma non lo trovo mi potete aiutare.
vb compila il tutto per al posto di cancellare un solo carattere come fa con 1 codice cancella tutto. ;( grz per l'aiuto'){i++;}
s[i]='vc++ tasto del con stringhe
Ciao a tutti, sto facendo un programa in vc++ in cui devo simulare il tasto del in una textbox.
Questo tasto deve cancellare un carattere: prova dopo aver schiacciato del prov.
A questo punto ho fatto il codice che gestisce la stringa e lo fa:

codice:
int i=0;
IntPtr p = Marshal::StringToHGlobalAnsi(textBox1->Text);
char *s = static_cast<char*>(p.ToPointer());
while(s[i+1]!='{parsed_message}'){i++;}
s[i]='{parsed_message}';
String^ str = gcnew String(s);
textBox1->Text=str;
Marshal::FreeHGlobal(p);


e fin qui tutto funziona.
dopo di che dato che questo tipo di gestione stringhe la usero un po ho fatto una funzione:

codice:
    /// funzioni
    char* StringToChar(String^ s){
        IntPtr p = Marshal::StringToHGlobalAnsi(s);
        char *c = static_cast<char*>(p.ToPointer());
        Marshal::FreeHGlobal(p);
        return c;
    }
    System::String^ CharToString(char* c){
        String^ s = gcnew String(c);
        return s;
    }
    /// funzioni


e il codice che la richiama:

codice:
int i=0;
char* s=StringToChar(textBox1->Text);
while(s[i+1]!='{parsed_message}'){i++;}
s[i]='{parsed_message}';
textBox1->Text=CharToString(s);


da qualche parte in questi codici ci sara un errore, ma non lo trovo mi potete aiutare.
vb compila il tutto per al posto di cancellare un solo carattere come fa con 1 codice cancella tutto. ;( grz per l'aiuto';
String^ str = gcnew String(s);
textBox1->Text=str;
Marshal::FreeHGlobal(p);


e fin qui tutto funziona.
dopo di che dato che questo tipo di gestione stringhe la usero un po ho fatto una funzione:

codice:
    /// funzioni
    char* StringToChar(String^ s){
        IntPtr p = Marshal::StringToHGlobalAnsi(s);
        char *c = static_cast<char*>(p.ToPointer());
        Marshal::FreeHGlobal(p);
        return c;
    }
    System::String^ CharToString(char* c){
        String^ s = gcnew String(c);
        return s;
    }
    /// funzioni


e il codice che la richiama:

codice:
int i=0;
char* s=StringToChar(textBox1->Text);
while(s[i+1]!='vc++ tasto del con stringhe
Ciao a tutti, sto facendo un programa in vc++ in cui devo simulare il tasto del in una textbox.
Questo tasto deve cancellare un carattere: prova dopo aver schiacciato del prov.
A questo punto ho fatto il codice che gestisce la stringa e lo fa:

codice:
int i=0;
IntPtr p = Marshal::StringToHGlobalAnsi(textBox1->Text);
char *s = static_cast<char*>(p.ToPointer());
while(s[i+1]!='{parsed_message}'){i++;}
s[i]='{parsed_message}';
String^ str = gcnew String(s);
textBox1->Text=str;
Marshal::FreeHGlobal(p);


e fin qui tutto funziona.
dopo di che dato che questo tipo di gestione stringhe la usero un po ho fatto una funzione:

codice:
    /// funzioni
    char* StringToChar(String^ s){
        IntPtr p = Marshal::StringToHGlobalAnsi(s);
        char *c = static_cast<char*>(p.ToPointer());
        Marshal::FreeHGlobal(p);
        return c;
    }
    System::String^ CharToString(char* c){
        String^ s = gcnew String(c);
        return s;
    }
    /// funzioni


e il codice che la richiama:

codice:
int i=0;
char* s=StringToChar(textBox1->Text);
while(s[i+1]!='{parsed_message}'){i++;}
s[i]='{parsed_message}';
textBox1->Text=CharToString(s);


da qualche parte in questi codici ci sara un errore, ma non lo trovo mi potete aiutare.
vb compila il tutto per al posto di cancellare un solo carattere come fa con 1 codice cancella tutto. ;( grz per l'aiuto'){i++;}
s[i]='vc++ tasto del con stringhe
Ciao a tutti, sto facendo un programa in vc++ in cui devo simulare il tasto del in una textbox.
Questo tasto deve cancellare un carattere: prova dopo aver schiacciato del prov.
A questo punto ho fatto il codice che gestisce la stringa e lo fa:

codice:
int i=0;
IntPtr p = Marshal::StringToHGlobalAnsi(textBox1->Text);
char *s = static_cast<char*>(p.ToPointer());
while(s[i+1]!='{parsed_message}'){i++;}
s[i]='{parsed_message}';
String^ str = gcnew String(s);
textBox1->Text=str;
Marshal::FreeHGlobal(p);


e fin qui tutto funziona.
dopo di che dato che questo tipo di gestione stringhe la usero un po ho fatto una funzione:

codice:
    /// funzioni
    char* StringToChar(String^ s){
        IntPtr p = Marshal::StringToHGlobalAnsi(s);
        char *c = static_cast<char*>(p.ToPointer());
        Marshal::FreeHGlobal(p);
        return c;
    }
    System::String^ CharToString(char* c){
        String^ s = gcnew String(c);
        return s;
    }
    /// funzioni


e il codice che la richiama:

codice:
int i=0;
char* s=StringToChar(textBox1->Text);
while(s[i+1]!='{parsed_message}'){i++;}
s[i]='{parsed_message}';
textBox1->Text=CharToString(s);


da qualche parte in questi codici ci sara un errore, ma non lo trovo mi potete aiutare.
vb compila il tutto per al posto di cancellare un solo carattere come fa con 1 codice cancella tutto. ;( grz per l'aiuto';
textBox1->Text=CharToString(s);


da qualche parte in questi codici ci sara un errore, ma non lo trovo mi potete aiutare.
vb compila il tutto per al posto di cancellare un solo carattere come fa con 1 codice cancella tutto. ;( grz per l'aiuto
aaa
19/07/12 17:01
nessuno
Come ti hanno già domandato in

forum.html.it/forum/…

devi usare il C++ nativo o il C++.NET ?


E comunque sappi che non è educato piantare un discorso con della gente in un forum e postare in un altro ...
Ultima modifica effettuata da nessuno 19/07/12 17:02
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
19/07/12 19:19
g181
Prima ti dico che non ho mollato nessuna delle due discussioni.
Secondo io vorrei farlo con il c++ standart. grz pero non so come gestire una stringa che esce da una textbox->text.
aaa
19/07/12 19:23
g181
saprei farlo con un printf scanf o con un cin e out ma con una stringa che esce con una textbox no.
aaa
19/07/12 19:28
nessuno
Postato originariamente da g181:

Prima ti dico che non ho mollato nessuna delle due discussioni.

Veramente hai aperto questa dopo quella ...

Secondo io vorrei farlo con il c++ standart. grz pero non so come gestire una stringa che esce da una textbox->text.

Con il c++ standard non avrai un textbox se non utilizzi una libreria apposita ... il c++ nativo non dispone di interfaccia grafica.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
19/07/12 19:37
g181
ok, scusa se ho scritto male"secondo io" cmq dato che hai ragione ma che ci sono dei metodi per convertire il risultato della textbox in stringa e poi lavorarci sopra(come ho fatto io), ma non funziona.Chiedevo a: se il mio codice aveva un errore di distrazione. b:se era meglio farlo in un altro modo.
aaa
19/07/12 19:39
g181
quindi sapresti postarmi o mettermi un link a proposito di quello che h chiesto. grz
aaa
19/07/12 19:48
nessuno
Ma cosa vuoi fare esattamente perché non si capisce proprio ...
Ultima modifica effettuata da nessuno 19/07/12 19:49
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.