Trendy Andy
Mitglied
Hallo!
Ich habe ein Windows Console Programm geschrieben, dass eine TXT Datei öffnet und alle Zeichen einliest und dann die Häufigkeit jedes einzelnen zeichens ausgibt.
Nun will ich das Programm als Windows Anwendung umändern. Das klappt auch soweit ganz gut. mit datei öffnen wähle ich die datei aus und die wird dann dem zählallgorithmus übergeben. Ich wollte dann mit "SetDlgItemText()" das Ergebnis im Dialogfenster anzeigen lassen! dieser funktion muss ich einen char übergeben. in der console anwendung war das eine printf Anweisung. Nun möchte ich dies was in der printf Anweisung steht einem char und damit dem Dialog übergeben! Wie kann ich das am dümmsten machen?
Ich häng mal den Quelltext der console anwendung an und markiere das was ich meine.
Ich mein die printf´s in der case anweisung.
Ich habe ein Windows Console Programm geschrieben, dass eine TXT Datei öffnet und alle Zeichen einliest und dann die Häufigkeit jedes einzelnen zeichens ausgibt.
Nun will ich das Programm als Windows Anwendung umändern. Das klappt auch soweit ganz gut. mit datei öffnen wähle ich die datei aus und die wird dann dem zählallgorithmus übergeben. Ich wollte dann mit "SetDlgItemText()" das Ergebnis im Dialogfenster anzeigen lassen! dieser funktion muss ich einen char übergeben. in der console anwendung war das eine printf Anweisung. Nun möchte ich dies was in der printf Anweisung steht einem char und damit dem Dialog übergeben! Wie kann ich das am dümmsten machen?
Ich häng mal den Quelltext der console anwendung an und markiere das was ich meine.
Code:
#include <stdio.h>
FILE *stream;
char zeichen;
int counter[256];
int i, anz_zeichen=0;
int main()
{
for (i=0;i<256;i++)
counter[i]=0;
if((stream=fopen("text.txt","r"))==NULL) printf("\nERROR: Konnte die Datei nicht oeffnen!\n");
else
{
while(!feof(stream))
{
zeichen = getc(stream); // lese Zeichen aus Datei
counter[zeichen]++;
}
fclose(stream);
for (i=0;i<256;i++)
anz_zeichen=anz_zeichen+counter[i];
printf("\nAnzahl eingelesener Zeichen: %i",anz_zeichen);
for (i=0;i<256;i++)
{
int dummy=counter[0],dummy_index=0;
for(int j=0;j<256;j++) // Funktion zum Ermitteln des größten Elements
{
if(dummy<counter[j])
{
dummy = counter[j];
dummy_index=j; // dummy_index speichert den Index des größten Elements
}
}
if(dummy!=0)
{
switch (dummy_index)
{
case 9:
printf("\nAnzahl des Zeichens 'TABULATOR'=%i und in Prozent: %2.2f%%",dummy,((float)dummy/(float)anz_zeichen)*100);
break;
case 10:
printf("\nAnzahl des Zeichens 'ENTER'=%i und in Prozent: %2.2f%%",dummy,((float)dummy/(float)anz_zeichen)*100);
break;
case 32:
printf("\nAnzahl des Zeichens 'SPACE'=%i und in Prozent: %2.2f%%",dummy,((float)dummy/(float)anz_zeichen)*100);
break;
default:
printf("\nAnzahl des Zeichens '%c'=%i und in Prozent: %2.2f%%",dummy_index,dummy,((float)dummy/(float)anz_zeichen)*100);
}
}
counter[dummy_index]=0; // aktuell größtes Element wird auf Null gesetzt, damit es beim nächsten
} // Durchlauf nicht mehr mitgezählt wird
}
return 0;
}
Ich mein die printf´s in der case anweisung.
Zuletzt bearbeitet: