Einzelnen Beitrag anzeigen
Alt 14. August 2008, 10:02  
Petzi
Mitzi
Petzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes AnsehenPetzi genießt hohes Ansehen
 
Benutzerbild von Petzi
 

Standard
Machs so -->

HTML-Code:
Public Sub import_las_button_Click() Dim str As String ' String Dim v As Variant ' Split Dim kid As Variant ' Key ID Split Dim delim As String ' Delimiter zur Stringtrennung Dim petrolog_datastart As String ' PETROLOG Zeichenfolge die im LAS-File direkt vor Datenbeginn steht Dim geoframe_datastart As String ' GEOFRAME Zeichenfolge die im LAS-File direkt vor Datenbeginn steht Dim geoframe_stpstr As String ' Zeichenfolge die im LAS-File direkt vor der STEP angabe steht Dim petrolog_stpstr As String ' Zeichenfolge die im LAS-File direkt vor der STEP angabe steht Dim ci_string As String ' Zeichenfolge die im LAS-File zu Beginn der Kurvendefinitionen steht Dim wi_string As String ' Zeichenfolge die im LAS-File zu Beginn der Bohrungs Informationen steht Dim petrolog_las As Boolean ' Wurde das LAS-File mit PETROLOG erstellt? TRUE/FALSE Dim geoframe_las As Boolean ' Wurde das LAS-File mit GEOFRAME erstellt? TRUE/FALSE Dim datastarted As Boolean ' TRUE wenn der Datastart-String gesichtet wurde Dim cinfostarted As Boolean ' TRUE wenn innerhalb der Curve Information Sektion eingelesen wird Dim winfostarted As Boolean ' TRUE wenn innerhalb der Well Info Sektion eingelesen wird Dim currentrow As Integer ' Aktuelle Zeile Dim curveinformation_row As Integer ' Zeilennummer des Curve Information Blocks Dim wellinformation_row As Integer ' Zeilennummer des Well Information Blocks Dim curve1_desc As String ' Kurve 1 Dim curve2_desc As String ' Kurve 2 Dim curve3_desc As String ' Kurve 3 Dim curve4_desc As String ' Kurve 4 Dim curve5_desc As String ' Kurve 5 Dim curve6_desc As String ' Kurve 6 Dim curve1_row As String ' curve1_desc in Row Dim curve2_row As String ' curve2_desc in Row Dim curve3_row As String ' curve3_desc in Row Dim curve4_row As String ' curve4_desc in Row Dim curve5_row As String ' curve5_desc in Row Dim curve6_row As String ' curve6_desc in Row Dim curve1_row_found As Boolean ' Bereits fündig gewesen? Dim curve2_row_found As Boolean ' Bereits fündig gewesen? Dim curve3_row_found As Boolean ' Bereits fündig gewesen? Dim curve4_row_found As Boolean ' Bereits fündig gewesen? Dim curve5_row_found As Boolean ' Bereits fündig gewesen? Dim curve6_row_found As Boolean ' Bereits fündig gewesen? Dim strl As Long ' String-Länge Dim logpath As String ' Dateipfad Dim i As Long ' Laufvariable Dim strSQL As String ' SQL String Dim dept() As String ' Depth Dim sw() As String ' Formation Water Saturation <=1.0 (Complex Litho Model) Dim phie() As String ' Effective Porosity (Complex Litho Model) Dim vcl() As String ' Volume of clay (Complex Litho Model) Dim devi() As String ' Deviation Dim tvd() As String ' True Vertical Depth Dim strFilter As String Dim lngFlags As Long strFilter = ahtAddFilterItem(strFilter, "Las Files (*.las)", "*.LAS") strFilter = ahtAddFilterItem(strFilter, "All Files (*.*)", "*.*") logpath = ahtCommonFileOpenSave(InitialDir:="C:\", Filter:=strFilter, FilterIndex:=3, Flags:=lngFlags, DialogTitle:="Import .LAS") delim = " " 'Trennzeichen zwischen den Werten in der LAS/TXT petrolog_stpstr = "STEP .M" geoframe_stpstr = "STEP.M" ci_string = "~C" wi_string = "~W" petrolog_datastart = "~A" geoframe_datastart = "~Ascii Data Section" curve1_desc = "DEPT" curve2_desc = "SW-CPX" curve3_desc = "PHIE-CPX" curve4_desc = "VCL-CPX" curve5_desc = "DEVI" curve6_desc = "TVD" datastarted = False geoframe_las = False petrolog_las = False winfostarted = False cinfostarted = False curve1_row_found = False curve2_row_found = False curve3_row_found = False curve4_row_found = False curve5_row_found = False curve6_row_found = False currentrow = 0 strSQL = "CREATE Table Las_Temp " & _ "(DataID INTEGER, " & _ "GroupID INTEGER, " & _ "datavisible YESNO, " & _ "val1 NUMBER, " & _ "val2 NUMBER, " & _ "val3 NUMBER, " & _ "val4 NUMBER, " & _ "val5 NUMBER, " & _ "val6 NUMBER)" DoCmd.RunSQL (strSQL) Open logpath For Input As 1 i = 0 Do While Not EOF(1) If datastarted = True Then Line Input #1, str 'doppelte trennzeichen entfernen Do While InStr(str, delim & delim) str = Replace(str, delim & delim, delim) Loop 'übrig gebliebenes trennzeichen vor dem ersten wert entfernen strl = Len(str) str = Right(str, strl - 1) 'string trennen v = Split(str, delim) 'werte in temporären table schreiben strSQL = "INSERT INTO Las_Temp (DataID, val1, val2, val3, val4, val5, val6) " & _ "SELECT '" & i & "', '" & v(0) & "', '" & v(1) & "', '" & v(2) & "', '" & v(3) & "', '" & v(4) & "', '" & v(5) & "'" CurrentDb.Execute (strSQL) i = i + 1 Else Line Input #1, str If InStr(str, geoframe_stpstr) Or InStr(str, petrolog_stpstr) Then 'doppelte leerzeichen löschen Do While InStr(str, delim & delim) str = Replace(str, delim & delim, delim) Loop 'übrig gebliebenes trennzeichen vor dem ersten wert entfernen strl = Len(str) str = Right(str, strl - 1) v = Split(str, delim) stepping = v(1) stepping_txt.Value = stepping End If If InStr(str, wi_string) Then winfostarted = True End If If InStr(str, ci_string) Then winfostarted = False cinfostarted = True wellinformation_row = currentrow End If 'GEOFRAME Datenbeginn If InStr(str, geoframe_datastart) Then cinfostarted = False geoframe_las = True datastarted = True End If 'PETROLOG Datenbeginn If InStr(str, petrolog_datastart) Then cinfostarted = False petrolog_las = True datastarted = True End If If InStr(str, curve1_desc) And curve1_row_found = False And cinfostarted = True Then curve1_row = currentrow curve1_row_found = True End If If InStr(str, curve2_desc) And curve2_row_found = False And cinfostarted = True Then curve2_row = currentrow curve2_row_found = True End If If InStr(str, curve3_desc) And curve3_row_found = False And cinfostarted = True Then curve3_row = currentrow curve3_row_found = True End If If InStr(str, curve4_desc) And curve4_row_found = False And cinfostarted = True Then curve4_row = currentrow curve4_row_found = True End If If InStr(str, curve5_desc) And curve5_row_found = False And cinfostarted = True Then curve5_row = currentrow curve5_row_found = True End If If InStr(str, curve6_desc) And curve6_row_found = False And cinfostarted = True Then curve6_row = currentrow curve6_row_found = True End If End If currentrow = currentrow + 1 Loop Close 1 MsgBox curve1_desc & "@" & curve1_row & " " & curve2_desc & "@" & curve2_row & " " & curve3_desc & "@" & curve3_row & " " & curve4_desc & "@" & curve4_row & " " & curve5_desc & "@" & curve5_row & " " & curve6_desc & "@" & curve6_row setroot buildtree writelist End Sub


verbraucht weniger Platz
Mit Zitat antworten