 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 04.07.2013, 21:50 Titel: c-Programm in Freebasic umwandeln. |
|
|
Hallo, guten Tag.
Ich habe hier ein C-Programm um Buchstaben umzuwandeln.
Wie kann man das bitte in Freebasic umstellen ?
Wie kann man die Tabellen in Freebasic darstellen um die Werte aufzurufen?
Danke.
Gruss
peter
Code: |
/* petcom version 1.00 by Craig Bruce, 18-May-1995
**
** Convert from PETSCII to ASCII, or vice-versa.
*/
#include <stdio.h>
int main( int argc, char *argv[] );
void PetToAsc( FILE *fin, FILE *fout );
void AscToPet( FILE *fin, FILE *fout );
unsigned char petToAscTable[256] = {
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x14,0x09,0x0d,0x11,0x93,0x0a,0x0e,0x0f,
0x10,0x0b,0x12,0x13,0x08,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x5b,0x5c,0x5d,0x5e,0x5f,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x90,0x91,0x92,0x0c,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x7b,0x7c,0x7d,0x7e,0x7f,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf
};
unsigned char ascToPetTable[256] = {
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x14,0x20,0x0d,0x11,0x93,0x0a,0x0e,0x0f,
0x10,0x0b,0x12,0x13,0x08,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
0x40,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0x5b,0x5c,0x5d,0x5e,0x5f,
0xc0,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xdb,0xdc,0xdd,0xde,0xdf,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x90,0x91,0x92,0x0c,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
};
/****************************************************************************/
int main( int argc, char *argv[] )
{
int i;
FILE *fin;
int filenameUsed, toAscFlag;
toAscFlag = 1;
filenameUsed = 0;
for (i=1; i<argc; i++) {
if (argv[i][0] == '-') {
toAscFlag = 0;
} else {
if ( (fin=fopen(argv[i],"rb")) == NULL ) {
printf("%s: error opening file \"%s\"!\n", argv[0], argv[i]);
} else {
if (toAscFlag) {
PetToAsc( fin, stdout );
} else {
AscToPet( fin, stdout );
}
fclose( fin );
}
filenameUsed = 1;
}
}
if (!filenameUsed) {
if (toAscFlag) {
PetToAsc( stdin, stdout );
} else {
AscToPet( stdin, stdout );
}
}
return( 0 );[code]
}
/****************************************************************************/
void PetToAsc( FILE *fin, FILE *fout )
{
int c;
while( (c=getc(fin)) != EOF ) {
putc( petToAscTabl[/code]e[c], fout );
}
}
/****************************************************************************/
void AscToPet( FILE *fin, FILE *fout )
{
int c;
while( (c=getc(fin)) != EOF ) {
putc( ascToPetTable[c], fout );
}
}
|
|
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 04.07.2013, 23:39 Titel: |
|
|
Code: | dim shared petToAscTable(256) as UByte = {_
&H00,&H01,&H02,&H03,&H04,&H05,&H06,&H07,&H14,&H09,&H0d,&H11,&H93,&H0a,&H0e,&H0f,_
&H10,&H0b,&H12,&H13,&H08,&H15,&H16,&H17,&H18,&H19,&H1a,&H1b,&H1c,&H1d,&H1e,&H1f,_
&H20,&H21,&H22,&H23,&H24,&H25,&H26,&H27,&H28,&H29,&H2a,&H2b,&H2c,&H2d,&H2e,&H2f,_
&H30,&H31,&H32,&H33,&H34,&H35,&H36,&H37,&H38,&H39,&H3a,&H3b,&H3c,&H3d,&H3e,&H3f,_
&H40,&H61,&H62,&H63,&H64,&H65,&H66,&H67,&H68,&H69,&H6a,&H6b,&H6c,&H6d,&H6e,&H6f,_
&H70,&H71,&H72,&H73,&H74,&H75,&H76,&H77,&H78,&H79,&H7a,&H5b,&H5c,&H5d,&H5e,&H5f,_
&Hc0,&Hc1,&Hc2,&Hc3,&Hc4,&Hc5,&Hc6,&Hc7,&Hc8,&Hc9,&Hca,&Hcb,&Hcc,&Hcd,&Hce,&Hcf,_
&Hd0,&Hd1,&Hd2,&Hd3,&Hd4,&Hd5,&Hd6,&Hd7,&Hd8,&Hd9,&Hda,&Hdb,&Hdc,&Hdd,&Hde,&Hdf,_
&H80,&H81,&H82,&H83,&H84,&H85,&H86,&H87,&H88,&H89,&H8a,&H8b,&H8c,&H8d,&H8e,&H8f,_
&H90,&H91,&H92,&H0c,&H94,&H95,&H96,&H97,&H98,&H99,&H9a,&H9b,&H9c,&H9d,&H9e,&H9f,_
&Ha0,&Ha1,&Ha2,&Ha3,&Ha4,&Ha5,&Ha6,&Ha7,&Ha8,&Ha9,&Haa,&Hab,&Hac,&Had,&Hae,&Haf,_
&Hb0,&Hb1,&Hb2,&Hb3,&Hb4,&Hb5,&Hb6,&Hb7,&Hb8,&Hb9,&Hba,&Hbb,&Hbc,&Hbd,&Hbe,&Hbf,_
&H60,&H41,&H42,&H43,&H44,&H45,&H46,&H47,&H48,&H49,&H4a,&H4b,&H4c,&H4d,&H4e,&H4f,_
&H50,&H51,&H52,&H53,&H54,&H55,&H56,&H57,&H58,&H59,&H5a,&H7b,&H7c,&H7d,&H7e,&H7f,_
&Ha0,&Ha1,&Ha2,&Ha3,&Ha4,&Ha5,&Ha6,&Ha7,&Ha8,&Ha9,&Haa,&Hab,&Hac,&Had,&Hae,&Haf,_
&Hb0,&Hb1,&Hb2,&Hb3,&Hb4,&Hb5,&Hb6,&Hb7,&Hb8,&Hb9,&Hba,&Hbb,&Hbc,&Hbd,&Hbe,&Hbf _
}
dim shared ascToPetTable(256) as UByte = {_
&H00,&H01,&H02,&H03,&H04,&H05,&H06,&H07,&H14,&H20,&H0d,&H11,&H93,&H0a,&H0e,&H0f,_
&H10,&H0b,&H12,&H13,&H08,&H15,&H16,&H17,&H18,&H19,&H1a,&H1b,&H1c,&H1d,&H1e,&H1f,_
&H20,&H21,&H22,&H23,&H24,&H25,&H26,&H27,&H28,&H29,&H2a,&H2b,&H2c,&H2d,&H2e,&H2f,_
&H30,&H31,&H32,&H33,&H34,&H35,&H36,&H37,&H38,&H39,&H3a,&H3b,&H3c,&H3d,&H3e,&H3f,_
&H40,&Hc1,&Hc2,&Hc3,&Hc4,&Hc5,&Hc6,&Hc7,&Hc8,&Hc9,&Hca,&Hcb,&Hcc,&Hcd,&Hce,&Hcf,_
&Hd0,&Hd1,&Hd2,&Hd3,&Hd4,&Hd5,&Hd6,&Hd7,&Hd8,&Hd9,&Hda,&H5b,&H5c,&H5d,&H5e,&H5f,_
&Hc0,&H41,&H42,&H43,&H44,&H45,&H46,&H47,&H48,&H49,&H4a,&H4b,&H4c,&H4d,&H4e,&H4f,_
&H50,&H51,&H52,&H53,&H54,&H55,&H56,&H57,&H58,&H59,&H5a,&Hdb,&Hdc,&Hdd,&Hde,&Hdf,_
&H80,&H81,&H82,&H83,&H84,&H85,&H86,&H87,&H88,&H89,&H8a,&H8b,&H8c,&H8d,&H8e,&H8f,_
&H90,&H91,&H92,&H0c,&H94,&H95,&H96,&H97,&H98,&H99,&H9a,&H9b,&H9c,&H9d,&H9e,&H9f,_
&Ha0,&Ha1,&Ha2,&Ha3,&Ha4,&Ha5,&Ha6,&Ha7,&Ha8,&Ha9,&Haa,&Hab,&Hac,&Had,&Hae,&Haf,_
&Hb0,&Hb1,&Hb2,&Hb3,&Hb4,&Hb5,&Hb6,&Hb7,&Hb8,&Hb9,&Hba,&Hbb,&Hbc,&Hbd,&Hbe,&Hbf,_
&H60,&H61,&H62,&H63,&H64,&H65,&H66,&H67,&H68,&H69,&H6a,&H6b,&H6c,&H6d,&H6e,&H6f,_
&H70,&H71,&H72,&H73,&H74,&H75,&H76,&H77,&H78,&H79,&H7a,&H7b,&H7c,&H7d,&H7e,&H7f,_
&He0,&He1,&He2,&He3,&He4,&He5,&He6,&He7,&He8,&He9,&Hea,&Heb,&Hec,&Hed,&Hee,&Hef,_
&Hf0,&Hf1,&Hf2,&Hf3,&Hf4,&Hf5,&Hf6,&Hf7,&Hf8,&Hf9,&Hfa,&Hfb,&Hfc,&Hfd,&Hfe,&Hff _
}
Function pet2asc(V_Text as String) as String
If V_Text = "" Then Return ""
Dim O as String = Space(Len(V_Text))
For X as UInteger = 0 to Len(V_Text) - 1
O[X] = petToAscTable(V_Text[X])
Next
Return O
End Function
Function asc2pet(V_Text as String) as String
If V_Text = "" Then Return ""
Dim O as String = Space(Len(V_Text))
For X as UInteger = 0 to Len(V_Text) - 1
O[X] = ascToPetTable(V_Text[X])
Next
Return O
End Function
print asc2pet(pet2asc("test"))
|
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 05.07.2013, 08:57 Titel: |
|
|
Hallo, vielen dank.
Das mit dem "C" sieht ja immer so wüst aus, als wenn man es schwer lösen könnte. Dieses Freebasic hat ja viele tolle Eigenschaften.
Was ist denn eigentlich für ein Unterschied bei : PET, ASC und ASCII ?
Wenn ich Text habe wie bei dir "test" ist das asc oder ascii ?
Kann man auch ascii in pet umwandeln ?
Danke.
Gruss
peter |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 05.07.2013, 10:05 Titel: Re: c-Programm in Freebasic umwandeln. |
|
|
arduno hat Folgendes geschrieben: |
Code: |
/* petcom version 1.00 by Craig Bruce, 18-May-1995
**
** Convert from PETSCII to ASCII, or vice-versa.
*/
[...]
|
|
Ich frag mich zwar wieso du anscheinend einfach x-beliebigen Code in FreeBasic umwandeln willst, von dem du nicht mal weißt was er genau tut; aber wenn du das Kommentar zu Beginn dieses Codes liest, sollte dir hoffentlich klar sein, dass "asc" in diesem Fall nur als abkürzung für "Ascii" verwendet wird. Ebenso "Pet" für "Petscii".
Dazu findet man genügend Infos im Netz. Nimm die Suchmaschine deiner Wahl und du wirst z.B. auf http://en.wikipedia.org/wiki/PETSCII stoßen. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 05.07.2013, 11:21 Titel: |
|
|
Jup, danke.
Weil ich den ascii nicht einlesen kann im durex-forth-C64 muss er umgewandelt werden. Wie und warum...., der umgewandelte Text soll nur einfach funktionieren.
Gruss |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|