Zum Inhalt springen

LinucCWin

Mitglieder
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

Beiträge von LinucCWin

  1. zum ersten : die Einrückungen sind unterwegs irgenwo verloren gegangen.

    zweitens :"Funktioniert nicht" ist keine ausreichende Fehlerbeschreibung. --> o.k meinte, dass sich das Programm nicht mal ohne Fehler compilieren laesst.

    Zum Anderen

    hab mittlerweile gemerkt das (MultiByteToWideChar) ne reine Win32-Api Funktion ist.

    Jedoch habe ich noch nicht die entsprechende Funktion unter Linux für g++ gefunden.

    Also wer kennt ne Funktion die UTF-8 in UniCode in Ansi

    bzw. UTF-8 direct in ANSI umwandelt ??? :confused:

  2. Halloechen

    ich hab da ein Problem mit einem C-Programm das unter Windows funktioniert, jedoch unter Linux Probleme macht :

    Das Programm ist dazu gedacht xml-Dateien zu erzeugen. Dazu werden einige Begriffe (ANSI- oder UTF8-Format) mit einer mysql-Datenbank(Daten in UTF8-Format) abgeglichen, daher die Notwendigkeit der Zeichenumwandlung.

    Hier die Fehlermeldungen

    diss_to_xml.cpp: In function `int main(int, char**)':

    diss_to_xml.cpp:79: error: invalid conversion from `char*' to `unsigned char*'

    diss_to_xml.cpp: In function `int fakultaet_aus_Mysql(char*, char*)':

    diss_to_xml.cpp:112: error: `CP_UTF8' undeclared (first use this function)

    diss_to_xml.cpp:112: error: (Each undeclared identifier is reported only once for each function it appears in.)

    diss_to_xml.cpp:112: error: `WCHAR' undeclared (first use this function)

    diss_to_xml.cpp:112: error: `MultiByteToWideChar' undeclared (first use this function)

    diss_to_xml.cpp:113: error: `CP_ACP' undeclared (first use this function)

    diss_to_xml.cpp:113: error: `WideCharToMultiByte' undeclared (first use this function)

    diss_to_xml.cpp: In function `int fach_aus_Mysql(char*, char*, char*)':

    diss_to_xml.cpp:147: error: `MultiByteToWideChar' undeclared (first use this function)

    diss_to_xml.cpp:148: error: `WideCharToMultiByte' undeclared (first use this function)

    und der entsprechende Soure-code :

    /*#include <WINDOWS.H>

    #include <winnls.h>*/ --> erstmal auskommentiert da es so viele Fehler erzeugt

    #include <time.h>

    #include <stdio.h>

    #include <mysql/mysql.h>

    #include <stdlib.h>

    #include <string.h>

    typedef struct

    {

    char * feld[18];

    } DISS;

    #include "diss_to_xml.h"

    static char fakultaet_rohling[256];

    static char fach_rohling[256];

    static char character_set[8];

    MYSQL *mConnection, mDB;

    int CheckUTF8(unsigned char * buf)

    {

    strcpy(character_set,"ansi");

    if (buf[0]!=0xef)

    return(0);

    if (buf[1]!=0xbb)

    return(0);

    if (buf[2]!=0xbf)

    return(0);

    strcpy(character_set,"utf8");

    return(1);

    }

    int _chkstk()

    {

    return(0);

    }

    /* ************************************************** ******************* */

    int main(int argc, char * argv[])

    {

    DISS feldname;

    DISS diss;

    char buf0[32000];

    char buf[64000];

    mysql_init(&mDB);

    mConnection = mysql_real_connect(&mDB,"test","test","","test",0,0,0);

    if (mConnection == NULL)

    {

    printf("Es konnte keine Verbindung zur Datenbank hergestellt werden: %s\n",mysql_error(&mDB));

    return 1;

    }

    strcpy(fakultaet_rohling,"select ID ********************** by ID");

    strcpy(fach_rohling,"select ID ******************** by ID");

    fread(buf,1,3,stdin);

    if (CheckUTF8(buf)==0)

    {

    fseek(stdin,0,0);

    }

    gets(buf0);

    XmlDateiErzeugen(&feldname,buf0);

    while (gets(buf)!=NULL)

    {

    XmlDateiErzeugen(&diss,buf);

    PrintDiss(&feldname,&diss);

    }

    mysql_close(mConnection);

    return(0);

    } /* int main */

    int fakultaet_aus_Mysql(char * text,char * ID_fakultaet)

    {

    MYSQL_RES *mysql_res;

    MYSQL_ROW row;

    char query_string[256];

    char uni_text[512];

    char ansi_text[512];

    int zaehler;

    if (strcmp(character_set,"utf8")==0)

    {

    MultiByteToWideChar(CP_UTF8, 0, text, -1, uni_text, sizeof(uni_text) / sizeof(WCHAR));

    WideCharToMultiByte(CP_ACP, 0, uni_text, -1, ansi_text, sizeof(ansi_text), 0, 0);

    sprintf(query_string,fakultaet_rohling,ansi_text);

    }

    else

    sprintf(query_string,fakultaet_rohling,text);

    mysql_query(&mDB,query_string);

    mysql_res = mysql_store_result(&mDB);

    zaehler = 0;

    if (mysql_res!=NULL)

    {

    while ((row = mysql_fetch_row (mysql_res)) != NULL)

    {

    strcpy(ID_fakultaet,row[0]);

    zaehler++;

    }

    }

    if (zaehler!=1)

    {

    fprintf(stderr,"Fakultaet: %s nicht oder nicht eindeutig vorhanden (%d)\n",text,zaehler);

    strcpy(ID_fakultaet,"0");

    }

    return(0);

    }

    int fach_aus_Mysql(char * text,char * ID_fakultaet,char * ID_fach)

    {

    MYSQL_RES *mysql_res;

    MYSQL_ROW row;

    char uni_text[512];

    char ansi_text[512];

    char query_string[256];

    int zaehler;

    if (strcmp(character_set,"utf8")==0)

    {

    MultiByteToWideChar(CP_UTF8, 0, text, -1, uni_text, sizeof(uni_text) / sizeof(WCHAR));

    WideCharToMultiByte(CP_ACP, 0, uni_text, -1, ansi_text, sizeof(ansi_text), 0, 0);

    sprintf(query_string,fach_rohling,ID_fakultaet,ans i_text);

    }

    else

    sprintf(query_string,fach_rohling,ID_fakultaet,tex t);

    mysql_query(&mDB,query_string);

    mysql_res = mysql_store_result(&mDB);

    zaehler = 0;

    if (mysql_res!=NULL)

    {

    while ((row = mysql_fetch_row (mysql_res)) != NULL)

    {

    strcpy(ID_fach,row[0]);

    zaehler++;

    }

    }

    if (zaehler!=1)

    {

    fprintf(stderr,"Fach: %s nicht oder nicht eindeutig vorhanden (%d) Faultaet=%s\n",text,zaehler,ID_fakultaet);

    strcpy(ID_fach,"0");

    }

    return(0);

    }

    wuerde mich ueber jeden hilfreichen Tip freuen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...