Weshalb stürzt OO beim Serversuch ab?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Weshalb stürzt OO beim Serversuch ab?

Beitrag von wega »

Hallo zusammen,

mit dem nachfolgenden Quellcode kann ich beliebige lokale Platten und USB-Sticks durchsuchen (scannen).

Wenn ich aber das Serverlaufwerk anspreche, verabschiedet sich Openoffice nach kurzer Zeit und Microsoft will einen Fehlerbericht absetzen.
Liegt das an dem Code?

Code: Alles auswählen

Private oDocument, oTxtRange As object
Private Liste(100000) as string
Private myString as String
Private Laufwerk as String
Private DocFileDateTime as object
Private oComputer as String

Sub Katalog
'  REM Rahmenbedingungen
GlobalScope.BasicLibraries.LoadLibrary("Tools")
Dim oDoc , oForm , CtrlTextBox as Object
Dim VerzeichnisAlt,VerzeichnisNeu,VerzeichnisTemp,MyText as string
'Dim Laufwerk as String

	oDoc = thisComponent
	oform=odoc.drawpage.forms.getbyindex(0)
	CtrlTextBox = oForm.getByName("Textfeld 1")
	Laufwerk = CtrlTextBox.text
	CtrlTextBox = oForm.getByName("Textfeld 2")
	myString = CtrlTextBox.text
	
	oComputer = environ ("COMPUTERNAME")
	
'	with thiscomponent.getDocumentInfo.ModifyDate
'		msgbox .Year
'		msgbox .Month
'		msgbox .Day
'		msgbox .Hours
'		msgbox .Minutes
'	end with
	'Jetzt geht es zu auslesen
	'Fortschrittsbalken
	erg=getDirs(liste(),0,Laufwerk)
	VerzeichnisAlt = ""
	
	REM Leeres Dokument erzeugen
	
	leerDoku
	
	oViewC = oDocument.getCurrentController().getViewCursor()
	oDocument.getText().insertString(oViewC, chr(13) & oComputer & chr(13), False)
	
	for Zaehler = 0 to (erg - 1)
	VerzeichnisTemp = ConvertFromURL(Liste(Zaehler))
	VerzeichnisNeu = DirectoryNameoutofPath(VerzeichnisTemp,"\")
		If VerzeichnisNeu = VerzeichnisAlt then
			oDocument.getText().insertString(oViewC, chr(13) & (Liste(Zaehler))& chr(13), False)
		else 
			oViewC = oDocument.getCurrentController().getViewCursor()
			oDocument.getText().insertString(oViewC, chr(13) & (Liste(Zaehler))& chr(13), False)
		end if
		
		VerzeichnisAlt = VerzeichnisNeu
	next Zaehler
		
	msgbox "fertig"
end sub


Sub leerDoku
Dim mArgs()
	oDocument = StarDesktop.loadComponentFromURL ("private:factory/swriter","_blank",0,mArgs())
	oDocument.title = "Katalog"
	
	
	'oDocumentPageStyles=ThisComponent.getStyleFamilies().getByName("PageStyles")
	'oDocumentPageStyle=oDocumentPageStyles.getByName("Katalog")
	'oDocumentPageStyle.setPropertyValue "IsLandscape",True	
	
	REM Neues Dokument geöffnet
End Sub

sub Fortschrittsbalken
	Dialoglibraries.Loadlibrary("Standard")
	MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
	MyDlg.setvisible (True)
	myctrl = myDlg.getControl("ProgressBar1")
	myctrl.model.backgroundcolor = RGB (255, 159, 70)
	myctrl.ForegroundColor = RGB (255, 0, 0)
	myctrl.model.ProgressValueMax=100
	for i= 0 to 100
	myDlg.getControl("Label1").Text = "In Arbeit... " & i & " %"
	if i > 75 then
	myctrl.ForegroundColor = RGB (2, 159, 70)
	myDlg.getControl("Label1").Text = "Bin gleich fertig! " & i & " %"
	MyCtrl1=MyDlg.getControl("Label1")
	myctrl1.model.textcolor = RGB (2, 159, 70)
	end if
	myctrl. value = i
	wait 40
	next i
	'erg=getDirs(liste(),0,Laufwerk)
	mydlg.setvisible (false)
end sub




function getdirs( liste(),z, folder) as integer
	sFolderUrl = ConvertToUrl( Folder )
	oSimpleFileAccess = createUnoService( "com.sun.star.ucb.SimpleFileAccess" )
    on error resume next
	aFolders = oSimpleFileAccess.getFolderContents( sFolderUrl,true )

	For i = LBound( aFolders ) To UBound( aFolders )
		sFile = aFolders( i )
		'Endung = lcase(right(sFile,4))
		Endung = lcase(sFile)
		If oSimpleFileAccess.isFolder( sFile ) Then
			getdirs( liste(),z, sFile)
		Else
			'if Ucase(Endung) = ltrim(rtrim(Ucase(myString))) then
			'if Ucase(Endung) = ltrim(rtrim(Ucase(myString))) or Instr(sFile,ltrim(rtrim(Ucase(myString))))<>0 then
			if Instr(Ucase(Endung),ltrim(rtrim(Ucase(myString))))<>0 then
				DocFileDateTime = Split(FileDateTime(sFile)," ")
				'msgbox DocFileDateTime(0) Jahreszahl
				'msgbox DocFileDateTime(1) Uhrzeit
				liste(z) = sFile & "/" & DocFileDateTime(0) & "/" & DocFileDateTime(1)
				z = z + 1
			end if
		end if
	next i
	getdirs = z
	
end function

mit freundlichem Gruß
Werner