home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9302 / tvision / tvpas / makestm.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-11-10  |  2.1 KB  |  91 lines

  1. (* ------------------------------------------------------ *)
  2. (*                     MAKESTM.PAS                        *)
  3. (*                                                        *)
  4. (*  Erzeugen des KeyCode-Streams KBCONST.STM aus der ent- *)
  5. (*           sprechenden Textdatei KBCONST.TXT            *)
  6. (*        (C) 1992 by Christian Ohr & DMV-Verlag          *)
  7. (* ------------------------------------------------------ *)
  8. {$R-,S-,I-,B-,D-,L-,V-,A+,F+,O+,X+}
  9.  
  10.  
  11. PROGRAM MakeStm;
  12.  
  13. USES
  14.   XMacro, Objects;
  15.  
  16.  
  17. VAR
  18.   T: TEXT;
  19.   S: STRING;
  20.   KeyStream: tDosStream;
  21.   CreateKeyCol: pKeyCol;
  22.  
  23.  
  24.  
  25. PROCEDURE StoreKeyRec(VAR S: STRING);
  26. VAR
  27.   P: BYTE;
  28.   Value: WORD;
  29.   Key: STRING;
  30.   ValueStr: STRING;
  31.   Error: INTEGER;
  32. BEGIN
  33.   Key := Copy(S, 1, Pred(Pos(' ', S)));
  34.  
  35.   P := 1;
  36.   WHILE (S[P] <> '=') AND (P <= Length(S)) DO Inc(P);
  37.   IF P > 1 THEN BEGIN
  38.     Move(S[P], S[1], Succ(Length(S) - P));
  39.     Dec(S[0], Pred(P));
  40.   END;
  41.  
  42.   Move(S[2], S[1], Pred(Length(S)));
  43.   Dec(S[0]);
  44.  
  45.   P := 1;
  46.   WHILE (S[P] = ' ') AND (P <= Length(S)) DO Inc(P);
  47.   IF P > 1 THEN BEGIN
  48.     Move(S[P], S[1], Succ(Length(S) - P));
  49.     Dec(S[0], Pred(P));
  50.   END;
  51.  
  52.   ValueStr := Copy(S, 1, Pred(Pos(';', S)));
  53.   Val(ValueStr, Value, Error);
  54.   IF Error <> 0 THEN BEGIN
  55.     WriteLn('Ungültige Quelldatei. Stream nicht angelegt.');
  56.     Halt(1);
  57.   END;
  58.   CreateKeyCol^.InsertKey(Key, Value);
  59. END;
  60.  
  61.  
  62. BEGIN
  63.   RegisterXMacro;
  64.  
  65.   CreateKeyCol := New(pKeyCol, Init(50,10));
  66.   Assign(T, 'KBCONST.TXT');
  67.   Reset(T);
  68.   IF IOResult = 0 THEN BEGIN
  69.     Write('Generiere Konstanten-Stream...');
  70.     WHILE NOT EoF(T) DO BEGIN
  71.       ReadLn(T, S);
  72.       StoreKeyRec(S);
  73.     END;
  74.     Close(T);
  75.     WITH KeyStream DO BEGIN
  76.       Init('KBCONST.STM', stCreate);
  77.       Put(CreateKeyCol);
  78.       IF Status <> stOk THEN
  79.         WriteLn('Fehler beim Erzeugen von KBCONST.STM');
  80.       Done;
  81.     END;
  82.     WriteLn('erfolgreich beendet.');
  83.   END ELSE
  84.     WriteLn(#7'KBCONST.TXT nicht gefunden.');
  85.   Dispose(CreateKeyCol, Done);
  86. END.
  87.  
  88.  
  89. (* ------------------------------------------------------ *)
  90. (*                 Ende von MAKESTM.PAS                   *)
  91.