SSTX
05-08-2004, 15:38
Hi, ich habe ein kleines Problem.
Ich habe ein kleines Programm geschrieben, mit dem man die Seitengrößen einer PDF-Datei auslesen und auf dem Bildschirm ausgeben kann. Das funktioniert auch ganz gut. Jetzt will ich aber die Seitengrößen weiterverarbeiten und muß sie dazu in Integer oder Float umwandeln. Irgendwie bekomme ich das nicht so richtig hin.
Hat vielleicht jemand einen Tip für mich?
Hier der Code meines Programms:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define BUF 255
int main(int argc, char **argv)
{
FILE *f;
char seite[80];
char seite1[80];
char seite2[80];
char *ptr;
char searchstring[BUF];
char puffer[BUF];
int counter=1,posi,b=1,rot=0,i;
if(argc < 2)
{
fprintf(stderr, "Verwendung : %s datei\n",*argv);
exit(0);
}
f=fopen(argv[1],"rb");
if(f == NULL)
{
printf("Fehler bei fopen()...");
exit(0);
}
while( fgets(puffer, BUF, f) != NULL )
{
if(strstr(puffer,"MediaBox") != 0) {
posi=strcspn( puffer, "x" );
if(puffer[posi-10]!=' ') rot=1;
strncpy(seite, strpbrk(puffer, "x"), 80);
strncpy(seite1, strpbrk(seite, "x"), strcspn( seite, "]" ));
seite1[strcspn( seite, "]" )]='\0';
strncpy(seite2, strpbrk(seite1, "123456789"), 30);
if (rot==1) {
ptr = strtok(seite2, " ");
ptr = strtok(NULL, " ");
printf("\nSeite %d: %sx",b,ptr);
ptr = strtok(seite2, " ");
printf("%s Punkte\n",ptr);
} else {
ptr = strtok(seite2, " ");
printf("Seite %d: %sx",b,ptr);
ptr = strtok(NULL, " ");
printf("%s Punkte\n",ptr);}
b++;rot=0;
}
counter++;
}
printf("\n");
system("Pause");
return 0;
}
Ich habe ein kleines Programm geschrieben, mit dem man die Seitengrößen einer PDF-Datei auslesen und auf dem Bildschirm ausgeben kann. Das funktioniert auch ganz gut. Jetzt will ich aber die Seitengrößen weiterverarbeiten und muß sie dazu in Integer oder Float umwandeln. Irgendwie bekomme ich das nicht so richtig hin.
Hat vielleicht jemand einen Tip für mich?
Hier der Code meines Programms:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define BUF 255
int main(int argc, char **argv)
{
FILE *f;
char seite[80];
char seite1[80];
char seite2[80];
char *ptr;
char searchstring[BUF];
char puffer[BUF];
int counter=1,posi,b=1,rot=0,i;
if(argc < 2)
{
fprintf(stderr, "Verwendung : %s datei\n",*argv);
exit(0);
}
f=fopen(argv[1],"rb");
if(f == NULL)
{
printf("Fehler bei fopen()...");
exit(0);
}
while( fgets(puffer, BUF, f) != NULL )
{
if(strstr(puffer,"MediaBox") != 0) {
posi=strcspn( puffer, "x" );
if(puffer[posi-10]!=' ') rot=1;
strncpy(seite, strpbrk(puffer, "x"), 80);
strncpy(seite1, strpbrk(seite, "x"), strcspn( seite, "]" ));
seite1[strcspn( seite, "]" )]='\0';
strncpy(seite2, strpbrk(seite1, "123456789"), 30);
if (rot==1) {
ptr = strtok(seite2, " ");
ptr = strtok(NULL, " ");
printf("\nSeite %d: %sx",b,ptr);
ptr = strtok(seite2, " ");
printf("%s Punkte\n",ptr);
} else {
ptr = strtok(seite2, " ");
printf("Seite %d: %sx",b,ptr);
ptr = strtok(NULL, " ");
printf("%s Punkte\n",ptr);}
b++;rot=0;
}
counter++;
}
printf("\n");
system("Pause");
return 0;
}