[erledigt] ProcedureReturn an der richtigen stelle ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

[erledigt] ProcedureReturn an der richtigen stelle ?

Beitrag von scholly »

moin, moin...

mach ich das so richtig mit den beiden ProcedureReturns oder was wäre warum richtiger/besser ?

Code: Alles auswählen

Procedure.s ugs_GetMediaType(thisdrive.s)

Define.s tempstr.s
Define.s devicestr.s
Define.s mtype.s = "kein Mounted media type gefunden"
Define.l cdrout

;devicestr = ugs_GetDeviceStr(thisdrive) ;das wäre echt
devicestr = "1,1,0" ;falls jemand ausm forum testen will ;)

Debug "devicestr: "+devicestr

If devicestr = "NoOptical"
  ProcedureReturn "NoOptical"
Else
  If OpenFile(3,"getMtype_kannweg.bat")
    WriteString(3,"cdrecord dev="+devicestr+" -minfo >getMtype_kannweg.txt 2>&1")
    CloseFile(3)
    cdrout = RunProgram("getMtype_kannweg.bat", "", "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
      WaitProgram(cdrout)
    CloseProgram(cdrout)
    If ReadFile(4,"getMtype_kannweg.txt")
      While Eof(4) = 0   
        tempstr = ReadString(4)               
        If (Left(tempstr,19) = "Mounted media type:")
          mtype = StringField(LTrim(RemoveString(tempstr,"Mounted media type:")),1," ")
        ElseIf (FindString(tempstr, "entweder falsch geschrieben", 1))
          mtype = "CDRecord entweder falsch geschrieben oder nicht gefunden" 
        EndIf       
      Wend  
    CloseFile(4)
    DeleteFile("getMtype_kannweg.txt")
    Else
      mtype = "kann getMtype_kannweg.txt nicht öffnen"
    EndIf    
    DeleteFile("getMtype_kannweg.bat")
  Else
    mtype = "keine getMtype_kannweg.bat geöffnet"
  EndIf
  ProcedureReturn mtype
EndIf
EndProcedure
[edit 1]
Fehlermöglichkeiten Beachtung geschenkt :)
[/edit 1]

mDv... scholly
Zuletzt geändert von scholly am 17.05.2008 16:13, insgesamt 3-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

Ich denke schon, dass das so passt.
Bei ProcedureReturn ... musst du nur bedenken, dass die Procedure sofort, nach dessen Aufruf verlassen wird.
v6.00
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Hatte ich auch gedacht, aber als ich dann ein paar funktionale Fallstricke eingebaut hatte, war ein Umstellen besser.
O-Posting ist geändert.

baw... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ProcedureReturn an der richtigen stelle ?

Beitrag von Kiffi »

kleine Anmerkung:
scholly hat geschrieben:

Code: Alles auswählen

If OpenFile(3,"getMtype_kannweg.bat")
ich empfehle an dieser Stelle gerne, CreateFile() anstelle von OpenFile()
zu verwenden.

1. Aufruf:

Code: Alles auswählen

If OpenFile(0, ...)
  WriteString(0, "Das ist ein einigermaßen langer String")
  CloseFile(0)
EndIf
Dateiinhalt -> Das ist ein einigermaßen langer String

2. Aufruf:

Code: Alles auswählen

If OpenFile(0, ...)
  WriteString(0, "Das ist ein relativ kurzer String")
  CloseFile(0)
EndIf
Dateiinhalt -> Das ist ein relativ kurzer Stringtring

;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Danke für die Anmerkung, mit dem mitgelieferten Beispiel ist das einsichtig. :allright:

Da ich in meiner Proc aber mit DeleteFile() fleißig aufräume, ists IMHO dort nicht notwendig.

bis denne... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Antworten