Hab das Programm jetzt noch mal komplett neu geschrieben!
Gute Nachricht : Es läuft!
Schlechte Nachricht : Nicht so wies soll….
Also Ziel ist es, dass das Programm den code eines anderen Programms einließt und schön formatiert, einrückt usw.
Ich habe mir also eine Liste gemacht mit den Schlüsselworten und diese strings zugewiesen und vergleiche jetzt den code Zeile für Zeile mit diesen schlüsselwörtern. Je nach Wort soll ein Leerzeichen eingefügt bzw. entfernt werden und Leerzeilen eingefügt werden. Das Funktioniert wie folgt: Ich lese die originale Datei ein und schreibe sie in eine neue, schön formatierte…
Das Problem ist jetzt:
Ich weiß nicht wie ich Absätze erstelle (bitte also um nen Tipp )
Und zweitens bekomme ich jedes Mal wenn das Programm durchläuft ne Fehlermeldung das das File nicht zum schreiben geöffnet sei, und ich finde einfach nicht heraus wieso! Jetzt hoffe ich, dass du, als erfahrener TP User das Problem erkennst und mir mitteilst, damit ichs verbessern kann. Ist wirklich wichtig!
hier mein neuer code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127: | Program indent;
USES CRT;
VAR
lzl2,lzl3,lzl4 : string;
lzl1,lzl5 : string;
inF,ouF : text;
ort : string;
nl : integer;
lz1,lz2,lz3,lz4 : string;
abs : string;
i : integer;
zeile : string;
z : string;
abs1,abs2,abs3,abs4,abs5,abs6,abs7,abs8,abs9 : string;
leer : string;
BEGIN
nl:=0;
leer:=(' ');
lzl1:=('BEGIN');
lzl2:=('VAR');
lzl3:=('PROGRAM');
lzl4:=('USES');
lzl5:=('CONST');
lz1:=('BEGIN');
lz2:=('END;');
lz3:=('END.');
lz4:=('do');
abs1:=(');');
abs2:=('*)');
abs3:=('integer;');
abs4:=('boolean;');
abs5:=('byte;');
abs6:=('real;');
abs7:=('string;');
abs8:=('text;');
abs9:=('longint;');
WRITELN ('Indent, von ********* und ************** ');
WRITELN ('Dieses Programm formatiert den code ihrer Pascal-Programms');
delay(5000);
CLRSCR;
WRITELN ('Bitte geben sie jetzt den Standort ihrer *.pas datei an');
READLN (ort);
ASSIGN (inF,ort);
WRITELN ('Dies ist der code in seiner urspruenglichen Form');
delay(4000);
RESET(inF);
WHILE NOT eof(inF) DO BEGIN
READLN (inF,zeile);
WRITELN (zeile);
end;
WRITELN ('Um weiter zu machen Taste druecken');
readln;
close(inF);
ASSIGN (ouF,ort);
WHILE NOT EOF(ouf) DO BEGIN
WRITE(ouF);
READLN (ouF,zeile);
z:=zeile;
IF z=lzl2 THEN BEGIN
WRITE (' ');
READ (z);
write(z);
END ELSE BEGIN
IF z=lzl3 THEN BEGIN
WRITE (' ');
READ (z);
write(z);
END ELSE BEGIN
IF z=lzl4 THEN BEGIN
WRITE (' ');
READ (z);
write(z);
END ELSE BEGIN
IF z=lzl5 THEN BEGIN
WRITE (' ');
READ (z);
write(z);
END ELSE BEGIN
IF z=lz1 THEN BEGIN
nl:=(nl+1);
WRITE(leer:(1+nl),z);
END ELSE BEGIN
IF z=lz2 THEN BEGIN
nl:=(nl-1);
WRITE(leer:(1+nl),z);
END ELSE BEGIN
IF z=lz3 THEN BEGIN
nl:=0;
WRITE(leer:(1+nl),z);
END ELSE BEGIN
IF z=lz4 THEN BEGIN
nl:=(nl+1);
WRITE(leer:(1+nl),z);
END;
END;
END;
END;
END;
END;
END;
END;
END;
END.
|