Der Rechner hängt sich immer auf - CPU Auslastung 100%
Verfasst: 24.02.2008 17:47
Hallole Ihr,
ich will aus einer Excel-Tabelle Werte einlesen und diese später in eine Textdatei schreiben.
Ich habe da den vorhandenen Code von Falko etwas umgeändert. Das Einlesen der Exceltabelle klappt auch gut. Nur beim Auslesen der Texttabelle hängt sich der Rechner auf - so das ich den jedesmal neu starten muss. Hat da einer eine Idee an was das liegen kann? Was habe ich da falsch gemacht - wo liegt denn da mein Denkfehler?
Der Code ist hier:
ich will aus einer Excel-Tabelle Werte einlesen und diese später in eine Textdatei schreiben.
Ich habe da den vorhandenen Code von Falko etwas umgeändert. Das Einlesen der Exceltabelle klappt auch gut. Nur beim Auslesen der Texttabelle hängt sich der Rechner auf - so das ich den jedesmal neu starten muss. Hat da einer eine Idee an was das liegen kann? Was habe ich da falsch gemacht - wo liegt denn da mein Denkfehler?
Der Code ist hier:
Code: Alles auswählen
;EnableExplicit
Define.l Pattern, ExcelAPP, Sheets, SheetN, n, AnfangX, AnfangY, EndeX, EndeY
Define.s StandardFile, sPattern, Datei, StandardFile, Text, endungs.s
#xlAscending = 1
#xlContinuous = 1
#xlCenter = -4108
#xlSolid=1
#xlContinuous=1
#xlThin=2
#xlNone=-4142
#xlWorksheet=-4167
#xlDouble = -4119
#xlDash = -4115
#xlDashDot = 4
#xlDashDotDot = 5
#xlDot = -4118
#xlDouble = -4119
#xlAutomatic = -4105
#xlLineStyleNone = -4142
#xlSlantDashDot = 13
#xlHairline = 1
#xlMedium = -4138
#xlThick = 4
#xlDiagonalDown = 5
#xlDiagonalUp = 6
#xlEdgeBottom = 9
#xlEdgeLeft = 7
#xlEdgeRight = 10
#xlEdgeTop = 8
#xlInsideHorizontal = 12
#xlInsideVertical = 11
#xlFormatFromLeftOrAbove = 0
#xlFormatFromRightOrBelow = 1
#xlToolbar = 1
#xlToolbarButton = 2
#xlToolbarProtectionNone = -4143
#xlTop = -4160
#xlTop10Items = 3
#xlTop10Percent = 5
#xlTopToBottom = 1
#xlToRight = -4161
#xlToLeft = -4159
#xlUp = -4162
#xlDown = -4121
#xlLightUp = 14
#xlPatternAutomatic = -4105
#xlPatternChecker = 9
#xlPatternCrissCross = 16
#xlPatternDown = -4121
#xlPatternGray16 = 17
#xlPatternGray25 = -4124
#xlPatternGray50 = -4125
#xlPatternGray75 = -4126
#xlPatternGray8 = 18
#xlPatternGrid = 15
#xlPatternHorizontal = -4128
#xlPatternLightDown = 13
#xlPatternLightHorizontal = 11
#xlPatternLightUp = 14
#xlPatternLightVertical = 12
#xlPatternLinearGradient = 4000
#xlPatternNone = -4142
#xlPatternRectangularGradient = 4001
#xlPatternSemiGray75 = 10
#xlPatternSolid = 1
#xlPatternUp = -4162
#xlPatternVertical = -4166
XIncludeFile "C:\Program Files\PureBasic - 4.02\PureBasic\Examples\DispHelper_Include\VariantHelper_Include.pb" ; write here your VariantHelper_include.pb - path
Procedure OpenExcelFile(Datei.s)
Protected *obj
dhToggleExceptions(#True); Toggles error messages from DispHelper on or off
*obj = dhCreateObject("Excel.Application")
If *obj
dhCallMethod(*obj, ".Workbooks.Open(%T)", @Datei) ; open ExcelFile
EndIf
ProcedureReturn *obj
EndProcedure
Procedure OpenExcelFileNext(*obj,Datei.s)
;dhToggleExceptions(#True); Toggles error messages from DispHelper on or off
;*obj = dhCreateObject("Excel.Application")
If *obj
dhCallMethod(*obj, ".Workbooks.Open(%T)", @Datei) ; open ExcelFile
EndIf
ProcedureReturn *obj
EndProcedure
Procedure.s ReadCellS1(*obj, Zeile.l,Spalte.l)
Protected ReturnValue.l, Resume.s
dhGetValue("%T", @ReturnValue, *obj, "Cells(%d, %d).Value",Zeile, Spalte) ; read one value
If ReturnValue
Resume=PeekS(ReturnValue)
dhFreeString(ReturnValue)
ProcedureReturn Resume
EndIf
EndProcedure
Procedure.s ReadCellS2(*obj, Zeile.l,Spalte.l)
Protected ReturnValue.l, Resume.s
dhGetValue("%T", @ReturnValue, *obj, "Cells(%d, %d).Value",Zeile, Spalte) ; read one value
If ReturnValue
Resume=PeekS(ReturnValue)
dhFreeString(ReturnValue)
ProcedureReturn Resume
EndIf
EndProcedure
Procedure.s ReadCellS3(*obj, Zeile.l,Spalte.l)
Protected ReturnValue.l, Resume.s
dhGetValue("%T", @ReturnValue, *obj, "Cells(%d, %d).Value",Zeile, Spalte) ; read one value
If ReturnValue
Resume=PeekS(ReturnValue)
dhFreeString(ReturnValue)
ProcedureReturn Resume
EndIf
EndProcedure
;-- Main Program
Define.l i
Define.s Name, wert1s, wert2s, wert3s,wert4s
StandardFile = ""
sPattern = "Text (*.xls)|*.xls|Alle Dateien (*.*)|*.*"
Pattern = 0
;Datei = OpenFileRequester("Bitte eine XLS-Datei auswählen", StandardFile, sPattern, Pattern)
Datei ="C:\Objekte\Purebasic - 4.0\Programme - PB4.0\Excel-WinTED\WinTED.xls"
dhToggleExceptions(#True); Toggles error messages from DispHelper on or off
ExcelApp=OpenExcelFile(Datei.s)
If ExcelApp
wert1s=ReadCellS1(ExcelApp, 1, 2)
wert2s=ReadCellS1(ExcelApp, 2, 2)
wert3s=ReadCellS1(ExcelApp, 3, 2)
wert4s=ReadCellS1(ExcelApp, 4, 2)
MessageRequester("Read_Cells", wert1s)
MessageRequester("Read_Cells", wert2s)
MessageRequester("Read_Cells", wert3s)
MessageRequester("Read_Cells", wert4s)
Else
MessageRequester("PureDispHelper-ExcelDemo", "Couldn't create Excel-Object")
EndIf
If ReadFile(1,"C:\Objekte\Purebasic - 4.0\Programme - PB4.0\Excel-WinTED\GAS.TAB")
Delay(1000)
While Eof(1) = 0 ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
zeilensatzs.s=ReadString(1)
gastabs.s=Left(zeilensatzs.s,10)
gastabwert1s.s=Mid(zeilensatzs.s,160, 5)
gastabwert2s.s=Mid(zeilensatzs.s,165, 5)
gastabwert3s.s=Mid(zeilensatzs.s,170, 5)
If gastabs.s="6720180734"
Debug gastabs.s
Debug gastabwert1s
Debug gastabwert2s
Debug gastabwert3s
;MessageRequester("GASTAB-Wert", gastabs.s)
;MessageRequester("GASTAB-Wert", gastabwert1s.s)
;MessageRequester("GASTAB-Wert", gastabwert2s.s)
;MessageRequester("GASTAB-Wert", gastabwert3s.s)
EndIf
CloseFile(1)
Debug ReadString(1) ; Zeile für Zeile im Debugger-Fenster anzeigen
Wend
Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
End