| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- MODULE DBF2DES;
- (*
- * ModBase
- * Release 3.0
- * (c) Copyright 1986 - 1991 PMI
- Copyright 1988 - 1991 John McMonagle
- * P.O. Box 8402
- * Green Bay Wi 53308
- * All Rights Reserved
- * by Ed Ross
- *)
- (* given a dbase3 file - create a descriptor for it *)
- FROM ModBase3 IMPORT UpdateDBFile,WriteDBRec,DeleteRecord,ReadDBRec,
- AppendBlank,DBFile,InitDBF,OpenDBF,DefaultFixUp,FieldList,NumberOfFields,
- DBFieldPtr;
- FROM ScrnTypes IMPORT InitDisplayFrame,DisplayFrame,AFrameName,ImageElement;
- FROM DataTypes IMPORT DataElmtRec;
- FROM PosUtils IMPORT Present,Pos;
- FROM Prompts IMPORT PromptStr;
- FROM HandleIO IMPORT FileExists,BlockRead,BlockWrite,CreateFile,CloseHandle;
- IMPORT InitCompilerMods;
- FROM StrEdit IMPORT CrunchBlanks,DeleteRightJustified,CAPstr,Append,SetLength;
- FROM M2Strings IMPORT Length,Assign;
- FROM LowLevel IMPORT Fill;
- FROM EnvironUtils IMPORT ReadEnvironment,ParsedParam;
- FROM SYSTEM IMPORT ADR,SIZE;
- IMPORT VWindows;
- VAR
- FileName : ARRAY[0..30] OF CHAR;
- FileName2 : ARRAY[0..20] OF CHAR;
- Environ : ARRAY[0..30] OF CHAR;
- DF : DisplayFrame;
- Elmt : DataElmtRec;
- DBF : DBFile;
- J : CARDINAL;
- H : CARDINAL;
- FldList : DBFieldPtr;
- NbrFlds : CARDINAL;
- B : BOOLEAN;
- EM : CARDINAL;
- PROCEDURE OpenFile();
- BEGIN
- B := ParsedParam(1,FileName);
- IF NOT B
- THEN
- InitDisplayFrame(DF,VWindows.CurrentWindow);
- Fill(ADR(FileName),SIZE(FileName),0);
- PromptStr('Enter name of Database File ',FileName);
- END;
- CrunchBlanks(FileName);
- IF Present('.',FileName)
- THEN SetLength(FileName,Pos('.',FileName));
- END;
- Assign(FileName, FileName2);
- Append(FileName2,'.DBF');
- InitDBF(FileName2,DBF,2,FALSE,FALSE,FALSE,DefaultFixUp);
- IF NOT OpenDBF(DBF)
- THEN
- HALT;
- END;
- CrunchBlanks(FileName);
- Append(FileName,'.DDF');
- EM := CreateFile(H,FileName);
- END OpenFile;
- BEGIN
- OpenFile();
- FldList := FieldList(DBF);
- NbrFlds := NumberOfFields(DBF);
- FOR J := 1 TO NbrFlds DO
- Assign( FldList^[J].name,Elmt.Name );
- Elmt.Type := FldList^[J].fldtype;
- Elmt.Len := FldList^[J].size;
- Elmt.Dec := FldList^[J].decplaces;
- Elmt.Idx := ' ';
- Elmt.Desc := '';
- EM := BlockWrite(H,ADR(Elmt),SIZE(Elmt));
- END;
- EM := CloseHandle(H);
- END DBF2DES.
|