ASCII in ANSI konvertieren



  • Moin!

    Ich habe folgendes Problem. Ich habe in meinem Programm eine Operation, die eine Textdaei ausliest und in einer TMemo Komponente ausgibt.
    Nun ist die Textdatei aber in ASCII und ich hätte diese gern in ANSI, da sonst die Zeichen ä,ü.. usw nicht richtig angezeigt werden.
    Mit OemToChar hab ich das schon probiert, was bei mir aber nicht richtig funzt.
    Er gibt mir dann im zweiten TMemo(wo der Text dann stehen soll in ANSI) nur eine 1 aus anstatt des Textes.

    Ich bedanke mich im vorraus für alle sinvollen und hilfreichen Antworten



  • Wie wärs, wenn du die ASCII-Werte jeden zeichens einließt und als ANSI in das Memo-Feld einträgst?

    for (int i=0;i<ANZAHL,i++)
    Memo1->Text+=Char((int)str[i]);
    

  • Mod

    Hallo

    OemToChar
    CharToOem

    MfG
    Klaus



  • Das funktioniert bei ihm nicht.


  • Mod

    Hallo

    dann sollte er klaeren warum es bei ihm nicht geht 😕
    ich arbeite eigentlich immer mit

    OemToChar
    CharToOem

    oder mit

    CharToOemBuff
    OemToCharBuff

    MfG
    Klaus



  • //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            Memo1->Lines->LoadFromFile("C:\\Projekte\\BüroWare\\Also\\AIALL\\V3ARTDAT.txt");
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
            Memo2->Text=OemToChar(Memo1->Text.c_str(),Memo1->Text.c_str());
    }
    //---------------------------------------------------------------------------
    

    so sieht das ungefähr aus
    doch im Memo2 gibt er mir immer nur eine 1 aus??



  • Vielleicht wirfst du ja mal einen Blick in die Hilfe zu OemToChar und siehst dir dort den Typ des Rückgabewertes an?

    Und wenn du gerade dabei bist dann schag auch nochmal c_str nach, um zu sehen, warum du das für den lpszDst nicht verwenden kannst


Anmelden zum Antworten