Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » HtmlConverter

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.10.2006, 20:27 Uhr
Chaos81



Hallo alle zusammen, unser Lehrer hätte gern so en verf... prog. mit dem man die buchstaben (ä,ö,ü,ß) aus einer textdatei ausliest (da diese im MS-Dos fenster nicht angezeigt werden) und diese mit z.b.&auml ä in einem neuem text editor speichert und diesen dann auf dem Bildschirm ausgelesen wird... Also ich hab kein plan, wie ich das anstellen soll.. Könnt Ihr mir helfen??

das Programm ohne die umlaute zu verändern würde so aussehen:


C++:
#include <iostram.h>
#include <stdio.g>

void main()

{
FILE * Dateiverweis1;
int zeichen;
int Kontrolle;
Dateiverweis1 = fopen ("Quelle.txt","r+");

do
{
zeichen = fgetc (Dateiverweis1);
cout << (char) zeichen;
}

while (zeichen!=EOF);

Kontrolle = fclose (Dateiverweis1);
if (Kontrolle ==EOF)
{
cout << endl;
cout << "Datei nicht geschlossen";
}
else
{
cout << endl;
cout << "Datei wurde geschlossen";
}
getchar();
}



PS.: Wenn ihr evt. noch begründen könntet, wie es funz (bzw. was eure ergänzungen macht) wäre ich Euch sehr Danke...

MFG

mod edit: BENUTZE CPP TAGS SELBER

Dieser Post wurde am 04.11.2006 um 12:23 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.10.2006, 20:42 Uhr
Blubber2063



Also was willst du erstens genau machen ? Dann Anmerkung: Dateiende testet man am besten mit feof, die Funktion ist dazu da. Und da du schon dabei bist c++ zu benutzen lass die C funktionen liegen und nimm Streams.

Dein Programm macht nix ausser eine Datei auf dem Bildschirm auszugeben, willst du Zeichen ersetzen musst du den eingelesen char Wert testen ob er deiner Suche entspricht und ihn dann ersetzen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.10.2006, 20:54 Uhr
Chaos81



Also ich hab noch absolut keinen Plan über das Programmieren... (Absoluter Anfänger)
Weiß zum Glück was ne Schleife ist... (do while... if , for hatten wir auch schon)
mit "Streams" kann ich leider noch nix anfangen.. ( :-/ was ist das?? )

Also ich möchte aus einer vorhandenen Textdatei namens "Quelle.txt" mit dem Inhalt :
"In München steht ein Hofbräuhaus, dort trinken wir die Krüge aus"
(Angezeigt wird es ja, wenn man es 1:1 übernimmt: "In M*nchen steht ein Hofbr+uhaus, dort trinken wir die Kr*ge aus" )
Das er das in eine zweite Datei (Namens "Senke.txt" schreibt) und zwar so, das der dos editor das ü und ä ausgibt (Hofbräuhaus, Krüge, München)...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.10.2006, 04:44 Uhr
Chaos81



Also Du hast mit deiner Aussage zwar den Nagel auf den Kopf getroffen, jedoch haperts bei mir an der Ausführung...
Aber troztdem Danke...

MFG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.10.2006, 11:44 Uhr
Blubber2063



Naja grob gesagt testest du in den du folgendes machst:


C++:
char bla = fgetc(Dateiverweis1);
if (bla == 'ö'){
  //hier scheibst du den Ersatzstring, hoffe ihr hattet wie das geht. Wobei bei mehreren
  //Abfragen du auch switch case benutzen kannst. Und wie gesagt Abbruchbedingung feof.
}


Aber aufpassen ö ist nicht überall gleich, also darauf achten das der Editor den richtigen Charset verwendet oder du schreibst gleich die Dezimale Representation von ö in der gewünchten Codierung hin. Aber was wie ö aussieht in Html, ist noch lange kein ö auf dem cmd Fenster unter Windows.

Dieser Post wurde am 06.10.2006 um 12:51 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.10.2006, 13:15 Uhr
~TEST
Gast


Wenn de das "ö" bzw. generell Umlaute in der Console haben willst, gibt es mehrere Möglichkeiten das zu tuen ... einmal Forumsuche benutzen und du hast was brauchbares...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.11.2006, 18:06 Uhr
Chaos81



Hallo alle zusammen,

ich habe das programm jetzt fertig (jedoch noch nicht so, wie es sein soll, da die umlaute nicht angezeigt werden. Habe sie einfach mit ae öe ... ersetzt.

Wisst ihr, wie der befehl lautet dass ich die zeichen ä,ö etc benutzen kann?


Hier mal das Programm...


C++:
#include <iostream.h>
#include <stdio.h>

void main ()

{
  char zeichen;
  int i;
  FILE *Dateiverweis;
  FILE *Senke;
  if ((Dateiverweis = fopen ("Quelle.txt","r")) == NULL)
    {
      cout << "Datei Quelle. TXT konnte nicht geoeffnet werden";
      getchar();
    }
  else
    {
      if ((Senke = fopen ("Senke.txt","w+")) == NULL)
        {
          fclose(Dateiverweis);
          cout << "Datei Senke. TXT konnte nicht geoeffnet werden";
          getchar();
        }
      else
        {
          do
            {
              zeichen = fgetc(Dateiverweis);
              if (zeichen == 'ß')
                {
                  for (i =0; i < 2; i++)
                    {
                      if ( i == 0)
                        {
                          zeichen = 's';
                          fputc(zeichen, Senke);
                          cout << zeichen;
                        }
                      else
                        zeichen = 's';
                     }
                }
              else if (zeichen == 'ü')
                {
                   for (i =0; i < 2; i++)
                     {
                       if ( i == 0)
                         {
                           zeichen = 'u';
                           fputc(zeichen, Senke);
                           cout << zeichen;
                         }
                       else
                         zeichen = 'e';
                     }
                }
              else if (zeichen == 'ä')
                {
                   for (i =0; i < 2; i++)
                    {
                      if ( i == 0)
                        {
                          zeichen = 'a';
                          fputc(zeichen, Senke);
                          cout << zeichen;
                        }
                      else
                        zeichen = 'e';
                    }
                }
              if (zeichen != EOF)
                fputc(zeichen, Senke);
              cout << zeichen;
            }
          while (zeichen != EOF);
          fclose(Dateiverweis);
          fclose(Senke);
          getchar();
        }
    }
}



mod edit: BENUTZE CPP TAGS SELBER

Dieser Post wurde am 04.11.2006 um 12:23 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.11.2006, 23:01 Uhr
xXx
Devil



C++:
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
    char    cChar    = ' ';
    FILE*    pFile    = NULL;
    FILE*    pSenke    = NULL;

    if ((pFile = fopen("Quelle.txt", "r")) == NULL)
    {
        std::cout << "Datei Quelle. TXT konnte nicht geoeffnet werden" << std::endl;
        getchar();

        return 0;
    }

    if ((pSenke = fopen("Senke.txt", "w+")) == NULL)
    {
        fclose(pFile);
        std::cout << "Datei Senke. TXT konnte nicht geoeffnet werden" << std::endl;
        getchar();
        return 0;
    }

    do
    {
        cChar = fgetc(pFile);
        if (cChar == 'ß')
        {
            for (unsigned int i = 0; i < 2; ++i)
            {
                if (i == 0)
                {
                    cChar = 's';
                    fputc(cChar, pSenke);
                    std::cout << cChar << std::endl;
                }
                else
                {
                    cChar = 's';
                }
            }
        }
        else if (cChar == 'ü')
        {
            for (unsigned int i = 0; i < 2; ++i)
            {
                if (i == 0)
                {
                    cChar = 'u';
                    fputc(cChar, pSenke);
                    std::cout << cChar << std::endl;
                }
                else
                {
                    cChar = 'e';
                }
            }
        }
        else if (cChar == 'ä')
        {
            for (unsigned int i = 0; i < 2; ++i)
            {
                if (i == 0)
                {
                    cChar = 'a';
                    fputc(cChar, pSenke);
                    std::cout << cChar << std::endl;
                }
                else
                {
                    cChar = 'e';
                }
            }
        }
        if (cChar != EOF)
            fputc(cChar, pSenke);
        
        std::cout << cChar << std::endl;
    }
    while (cChar != EOF);
        
    fclose(pFile);
    fclose(pSenke);
    getchar();
    
    return 0;
}
Naja mal Code-Tags reingehauen und mal an den C++-Std. angepasst

Dieser Post wurde am 03.11.2006 um 23:01 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.11.2006, 00:23 Uhr
Chaos81



naja, es DEV C++ hat stress mit folgender zeile

"int _tmain(int argc, _TCHAR* argv[])"

und wenn ich diese etwas anpasse, werden die buchstaben nur untereinander geschrieben und die umlaute sin noch immer nicht als ä,ö,ü, etc in der senke gespeichert und wurden auch leider nicht als Ä,Ö,Ü ausgegeben...

Bis her hatte ich bei DEVC++ und BorlandC++ (in der schule) das "std::cout << "Date..." also das std nich mehr brauchen einzubinden, dafür hatte ich es ja auch schon oben stehen...

Es sei denn man benötigt dies für das ä etc auszugeben...

Aber trotzdem DANKE.


PS.: Es DEV C++ müsste auch als Freeware im net stehen. Ich habe es aus dem Schulbuch... ist die Version 4.9.5.0 die neuere aus dem netz wollte nicht so recht ....

MFG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
04.11.2006, 00:30 Uhr
xXx
Devil


hmm du hast dann wohl eine sehr veraltete Version ... was du da so stehen hast war seid 99 net mehr erlaubt Naja ... hmm mach dann halt

C++:
int main(int argc, char* argv[])
... die Umlaute ... benutz mal die Forensuche disbezüglich...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: