home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2002 March / PCWMAR02.iso / software / turbocad / V4 / tcw.z / Impoint.bas < prev    next >
BASIC Source File  |  1997-10-28  |  3KB  |  115 lines

  1. ' This sample program is an example of how to do custom file IO from  TurboCAD.  We will build graphics from the vertices in the table.
  2. '
  3. ' Author    : Mike Cartwright, Tamara Cartwright (updated to 4.0 interface)
  4. ' Date        : 01/08/96, 03/08/97
  5. 'Constants
  6. Global Const GK_GRAPHIC = 11
  7.  
  8. ' File I/O constants
  9. Global Const EOFILE     = -1
  10.  
  11. Sub Main ()
  12.     Dim FileName As String
  13.     Dim LineBuffer As String
  14.     Dim Ertxt As String
  15.     Dim g As Long
  16.     Dim v As Long
  17.     Dim vi As Long
  18.     Dim fh As Long
  19.     Dim dActive As Long
  20.     Dim x As Double
  21.     Dim y As Double
  22.     Dim z As Double
  23.     Dim Part As String 
  24.     Dim PartX As String
  25.     Dim PartY As String
  26.     Dim PartZ As String
  27.     Dim Delim As String
  28.     Dim Pos As Integer
  29.     
  30.     ' Check for valid drawing
  31.     dActive    = TCWDrawingActive ()
  32.     If dActive = 0 Then
  33.        MsgBox "Program requires active drawing."
  34.        ' Terminate the program
  35.        Stop
  36.     End If
  37.     
  38.     vi = 0
  39.     g = 0
  40.     
  41.     ' Delimiter for record fields in the input text file
  42.     Delim = Chr$(9)
  43.      
  44.     ' Get the name of the input file
  45.     FileName = InputBox("Type in the filename to import from","TurboCAD")
  46.     
  47.     If (FileName <> "") Then        
  48.         
  49.         ' Open input text file.
  50.         fh = TCWOpenInput(FileName)
  51.  
  52. if (fh=0) Then
  53. result=TCWLastErrorGet(ertxt)
  54. MsgBox ertxt
  55. Stop
  56. End If        
  57.  
  58.         ' Read lines from the input file and brake them down
  59.         ' to numeric values
  60.         
  61.         vi = 0 
  62.         while (TCWReadInput(fh, LineBuffer) <> EOFILE)
  63.             ' Graphic separator
  64.             if  LineBuffer = "" Then
  65.                 if ((g <> 0) And (vi > 0)) Then
  66.                      TCWGraphicAppend 0, g 
  67.                      TCWGraphicDraw g, 0           
  68.                      g = 0
  69.                 End If 
  70.                 vi = 0
  71.             End If
  72.             if  (LineBuffer <> "") Then 
  73.                 ' find the first delimiters position in Line
  74.                 Pos = InStr(1, LineBuffer, Delim, 0)
  75.                 ' Let's remove the index part
  76.                 Part = Right$(LineBuffer, Len(LineBuffer) - Pos)
  77.                 ' Let's find position of the second delimiter                        
  78.                 Pos = InStr(1, Part, Delim, 0)
  79.                 ' Let's extract the frist number
  80.                 PartX = Left$(Part, Pos-1) 
  81.                 x = Val(PartX)
  82.                 Part = Right$(Part, Len(Part) - Pos)
  83.                 ' Let's find the position of the third delimiter
  84.                 Pos = InStr(1, Part, Delim, 0)
  85.                 PartY = Left$(Part, Pos-1)
  86.                 y = Val(PartY)
  87.                 PartZ = Right$(Part, Len(Part) - Pos)
  88.                 z = Val(PartZ)
  89.                 ' Add vertex (x, y, z) to the graphic g    
  90.                 If vi = 0 Then
  91.                    g = TCWGraphicCreate(GK_GRAPHIC, "")
  92.                 End If
  93.                 If g <> 0 Then                   
  94.                    TCWGraphicXYZAdd g, x, y, z 
  95.                 End If   
  96.                 vi = vi + 1 
  97.               End If
  98.         wend
  99.         
  100.         ' If anything is left out we need to add to the drawing
  101.         ' now.
  102.         if ((g <> 0) And (vi > 0)) Then
  103.             TCWGraphicAppend 0, g
  104.         End If
  105.  
  106.         TCWCloseInput fh
  107.          MsgBox "Finished"
  108.          Stop
  109.  
  110.     End If
  111.   MsgBox "Script was cancelled."
  112.  
  113. End Sub
  114.