C Programm
-
Hallo
ich komme leider nicht weiter , bin dabei ein programm zu schreiben in dem ich eine datei einlese und um wandeln möchte .
Die ein gelesene datei sieht so aus:
ORGANIZATION_BLOCK MAIN:OB1
TITLE=PROGRAMMKOMMENTARE
BEGIN
Network 1 // Netzwerktitel
// Netzwerkkommentar
LD E0.0
U E0.1
LDN E0.2
NOT
U A0.0
OLD
= A0.0
= A0.1
END_ORGANIZATION_BLOCKund ich möchte jetzt von LD an alles was rechts ist ,
also LD,U,LDN,NOT,U,OLD,=,= in eine Stuktur oder so
und das gleiche mit den E0.0 ... aber in ne andere .
angefangen habe ich die datei aus zulesen . möchte das ausdem :
LD E0.0
U E0.1
LDN E0.2
NOT
U A0.0
OLD
= A0.0
= A0.1das wird:
U E0.0
U E0.1
S A0.0
UN E0.2
R A0.0
= A0.1Anfang C:
#include <stdio.h>
#include <stdlib.h>int main()
{
FILE *stream;
int i;
char puffer[100];
stream=fopen("c.awl","r");
i=0;
while(1)
{
fgets(puffer,100,stream);
if(puffer[0]=='B')
break;
i++;
}
while( (i=fgetc(stream)) !=EOF)
putchar(i);
fclose(stream);
return 0;ich Danke schon mal im vorraus gruß
-
Und die Frage ist? Aber vielleicht hilft dir auch das hier weiter: http://www.c-plusplus.net/forum/200753
-
Ja die Frage ist wie realisiere ich das einlesen und wandeln
-
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct test { char test1[20]; char test2[20]; char test3[20]; char test4[20]; char test5[20]; char test6[20]; char test7[20]; char test8[20]; } TEST; int main() { FILE *stream; char *ptr; char puffer[100], bezeichner[10]; TEST speicher, speicher2; stream = fopen("test.txt", "r"); if(stream == NULL) { printf("Fehler beim öffnen der Datei\n"); getchar(); return 0; } while(fgets(puffer, 100, stream) != NULL) { if(puffer[0] == '/') break; else printf("%s", puffer); } while(fgets(puffer, 100, stream) != NULL) { ptr = strchr(puffer, '\n'); if(ptr != NULL) *ptr = '\0'; // \n löschen ptr = strchr(puffer, ' '); if(ptr == NULL) { printf("Fehler\n"); getchar(); return 0; } *ptr = '\0'; ptr = ptr + 1; strcpy(bezeichner, "U "); strcat(bezeichner, ptr); strcpy(speicher2.test1, bezeichner); strcpy(speicher.test1, puffer); printf("%s\n", speicher.test1); printf("%s\n", speicher2.test1); break; } getchar(); return 0; }
Das break; am Schluss der letzten Warteschleife musst du natürlich wegmachen. Zudem musst du die Stellen wo die strings gespeichert werden (bei mir speicher.test1) flexibel machen, vllt mit switch oder so. Aber so funkioniert es zumindest bei mir für das erste Element problemlos. Nur so aus Interresse: Was soll das mal werden?
-
Es soll ein Programm werden was einen Programmcode einer S7 200 in eine S7 300 wandelt bin aber noch sehr am Anfang mit C
so richitg weiss ich noch nicht weiter
-
lass es laufen, arbeit dich durch und wenns noch klemmt, meld dich...
-
Treffnix061283 schrieb:
Es soll ein Programm werden was einen Programmcode einer S7 200 in eine S7 300 wandelt bin aber noch sehr am Anfang mit C
so richitg weiss ich noch nicht weiterFür solchen Textersatz wäre awk oder gleich Perl besser geeignet.