DBF2DES.MOD 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. MODULE DBF2DES;
  2. (*
  3. * ModBase
  4. * Release 3.0
  5. * (c) Copyright 1986 - 1991 PMI
  6. Copyright 1988 - 1991 John McMonagle
  7. * P.O. Box 8402
  8. * Green Bay Wi 53308
  9. * All Rights Reserved
  10. * by Ed Ross
  11. *)
  12. (* given a dbase3 file - create a descriptor for it *)
  13. FROM ModBase3 IMPORT UpdateDBFile,WriteDBRec,DeleteRecord,ReadDBRec,
  14. AppendBlank,DBFile,InitDBF,OpenDBF,DefaultFixUp,FieldList,NumberOfFields,
  15. DBFieldPtr;
  16. FROM ScrnTypes IMPORT InitDisplayFrame,DisplayFrame,AFrameName,ImageElement;
  17. FROM DataTypes IMPORT DataElmtRec;
  18. FROM PosUtils IMPORT Present,Pos;
  19. FROM Prompts IMPORT PromptStr;
  20. FROM HandleIO IMPORT FileExists,BlockRead,BlockWrite,CreateFile,CloseHandle;
  21. IMPORT InitCompilerMods;
  22. FROM StrEdit IMPORT CrunchBlanks,DeleteRightJustified,CAPstr,Append,SetLength;
  23. FROM M2Strings IMPORT Length,Assign;
  24. FROM LowLevel IMPORT Fill;
  25. FROM EnvironUtils IMPORT ReadEnvironment,ParsedParam;
  26. FROM SYSTEM IMPORT ADR,SIZE;
  27. IMPORT VWindows;
  28. VAR
  29. FileName : ARRAY[0..30] OF CHAR;
  30. FileName2 : ARRAY[0..20] OF CHAR;
  31. Environ : ARRAY[0..30] OF CHAR;
  32. DF : DisplayFrame;
  33. Elmt : DataElmtRec;
  34. DBF : DBFile;
  35. J : CARDINAL;
  36. H : CARDINAL;
  37. FldList : DBFieldPtr;
  38. NbrFlds : CARDINAL;
  39. B : BOOLEAN;
  40. EM : CARDINAL;
  41. PROCEDURE OpenFile();
  42. BEGIN
  43. B := ParsedParam(1,FileName);
  44. IF NOT B
  45. THEN
  46. InitDisplayFrame(DF,VWindows.CurrentWindow);
  47. Fill(ADR(FileName),SIZE(FileName),0);
  48. PromptStr('Enter name of Database File ',FileName);
  49. END;
  50. CrunchBlanks(FileName);
  51. IF Present('.',FileName)
  52. THEN SetLength(FileName,Pos('.',FileName));
  53. END;
  54. Assign(FileName, FileName2);
  55. Append(FileName2,'.DBF');
  56. InitDBF(FileName2,DBF,2,FALSE,FALSE,FALSE,DefaultFixUp);
  57. IF NOT OpenDBF(DBF)
  58. THEN
  59. HALT;
  60. END;
  61. CrunchBlanks(FileName);
  62. Append(FileName,'.DDF');
  63. EM := CreateFile(H,FileName);
  64. END OpenFile;
  65. BEGIN
  66. OpenFile();
  67. FldList := FieldList(DBF);
  68. NbrFlds := NumberOfFields(DBF);
  69. FOR J := 1 TO NbrFlds DO
  70. Assign( FldList^[J].name,Elmt.Name );
  71. Elmt.Type := FldList^[J].fldtype;
  72. Elmt.Len := FldList^[J].size;
  73. Elmt.Dec := FldList^[J].decplaces;
  74. Elmt.Idx := ' ';
  75. Elmt.Desc := '';
  76. EM := BlockWrite(H,ADR(Elmt),SIZE(Elmt));
  77. END;
  78. EM := CloseHandle(H);
  79. END DBF2DES.
  80.