RunProgram(File$)
RunProgram(File$)
Hallo,
ich möchte eine Textdatei innerhalb des Programmes mit dem Standard-Editor
auf dem PC öffnen.
Ich benutze dazu RunProgram(DATEINAME).
Als Standardprogramm habe ich WordPad. Nach dem Aufruf wird auch
WordPad mit dem Inhalt von DATEINAME geöffnet, nur komischerweise
nicht nur einmal, sondern 2 Mal. Ich muß dann also 2 Mal WordPad wieder
schließen. Weiß jemand, was man machen muß, damit sich der Texteditor
nur einmal öffnet?
Gruß
Gerhard
ich möchte eine Textdatei innerhalb des Programmes mit dem Standard-Editor
auf dem PC öffnen.
Ich benutze dazu RunProgram(DATEINAME).
Als Standardprogramm habe ich WordPad. Nach dem Aufruf wird auch
WordPad mit dem Inhalt von DATEINAME geöffnet, nur komischerweise
nicht nur einmal, sondern 2 Mal. Ich muß dann also 2 Mal WordPad wieder
schließen. Weiß jemand, was man machen muß, damit sich der Texteditor
nur einmal öffnet?
Gruß
Gerhard
Re: RunProgram(File$)
Poste mal den kompletten Code den du benutzt. Bestimmt hat sich da ein Fehler eingeschlichen.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: RunProgram(File$)
Ich weiß nicht, was an Deiner Config falsch ist, das es zweimal kommt, aber Du kannst es ja mal so
probieren:
Wobei man für unformatierte Text besser Notepad nutzt!
probieren:
Code: Alles auswählen
Define.s File = #DQUOTE$ + #PB_Compiler_Home + "SDK\Readme.txt" + #DQUOTE$
RunProgram("wordpad", File, GetPathPart(File))
Re: RunProgram(File$)
Hier die aufgerufene Prozedur:
Hallo Ts-Soft, Deine Antwort werde ich mal probieren,danke
Code: Alles auswählen
Procedure EXPORT_ADIF()
;GLOBALE VARIABLE TRZ$ (Trennzeichen)
Protected FILE.s, titel$, standarddatei$,pattern$,patternposition.b, ZEILE$, anzahl.l, AnzBytes.l, markiert.s
Protected a$, b$, c$, d$, e$, f$, g$, h$, i$, j$, k$, l$, m$, n$, o$, p$, c2$, qs$, qr$, begriff$, dxcc$
titel$="LOGBUCH [EXPORT > ADIF ]"
standarddatei$=ReplaceString(ReplaceString(eigenes_call,Chr(216),"0",1,1),"/","~",1,1)+"_EXPORT_"+FormatDate("%dd%mm%yyyy%hh%ii",Date())+".adi"
pattern$="ADIF-Dateien | *.adi"
FILE = SaveFileRequester(titel$,standarddatei$,pattern$,patternposition)
If FILE ="":ProcedureReturn(i):EndIf
anzahl = CountGadgetItems(#LIGadget_3)
If anzahl = 0:MessageRequester("LOGBUCH [ EXPORT > ADIF ]","ES SIND KEINE EINTRÄGE IN DER LISTE"):ProcedureReturn(i):EndIf
;Liste abarbeiten *******
;Speicherbereich erstellen
*beginn=AllocateMemory(20,5000000000,0)
*zeiger=*beginn
AnzBytes=0
;HEADER EINTRAGEN
;1.ZEILE
ZEILE$="PureLOG Logbuchprogramm [2004-"+FormatDate("%yyyy",Date())+"]"+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;2.ZEILE
ZEILE$="http://purelog.de"+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;VERSION ADIF EINTRAGEN
ZEILE$="<ADIF_VER:4>1.00"+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;EOH EINTRAGEN
ZEILE$="<EOH>"+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;LEERZEILE
ZEILE$=""+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
markiert = "NEIN"
;Feststellen, ob was markiert ist,oder nicht
For i=0 To CountGadgetItems(#LIGadget_3)-1
If GetGadgetItemState(#LIGadget_3,i) <> 0: markiert = "JA":Break:EndIf
Next i
;AB HIER DIE DATEN EINTRAGEN
Select markiert
Case "JA"
For i=0 To CountGadgetItems(#LIGadget_3)-1
If GetGadgetItemState(#LIGadget_3,i) <> 0
;ZEILE 1
a$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,1),Chr(216),"0",1,1);RUFZEICHEN
b$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,2),Chr(216),"0",1,1);DXCC
;DXCC-NR feststellen
Restore ADIF
Repeat
Read begriff$
If StringField(begriff$,1,"#")=b$:dxcc$=StringField(begriff$,2,"#"):Break:EndIf
Until begriff$="ADIFENDE"
c$=LTrim(GetGadgetItemText(#LIGadget_3,i,5));FREQUENZ
;BAND HERAUSFILTERN
If ValF(c$)>=1.800 And Val(c$)<=1.980:c2$="160M":EndIf
If ValF(c$)>=3.500 And Val(c$)<=3.800:c2$="80M":EndIf
If ValF(c$)>=7.000 And Val(c$)<=7.200:c2$="40M":EndIf
If ValF(c$)>=10.100 And ValF(c$)<=10.150:c2$="30M":EndIf
If ValF(c$)>=14.000 And ValF(c$)<=14.350:c2$="20M":EndIf
If ValF(c$)>=18.068 And ValF(c$)<=18.168:c2$="17M":EndIf
If ValF(c$)>=21.000 And ValF(c$)<=21.450:c2$="15M":EndIf
If ValF(c$)>=24.890 And ValF(c$)<=24.990:c2$="12M":EndIf
If ValF(c$)>=28.000 And ValF(c$)<=29.700:c2$="10M":EndIf
If ValF(c$)>=50.000 And ValF(c$)<=52.000:c2$="6M":EndIf
If ValF(c$)>=144.000 And ValF(c$)<=146.000:c2$="2M":EndIf
If ValF(c$)>=430.000 And ValF(c$)<=440.000:c2$="70CM":EndIf
If ValF(c$)>=1240.000 And ValF(c$)<=1300.000:c2$="23CM":EndIf
If ValF(c$)>=2320.000 And ValF(c$)<=2450.000:c2$="13CM":EndIf
If ValF(c$)>=5650.000 And ValF(c$)<=5850.000:c2$="6CM":EndIf
If ValF(c$)>=10000.000 And ValF(c$)<=10500.000:c2$="3CM":EndIf
;BAND
d$=GetGadgetItemText(#LIGadget_3,i,6);MODE
ZEILE$="<CALL:"+Str(Len(a$))+">"+a$+" <DXCC:"+Str(Len(dxcc$))+":N>"+dxcc$+" <ENTITY:"+Str(Len(b$))+":C>"+b$+" <FREQ:"+Str(Len(c$))+">"+c$+" <BAND:"+Str(Len(c2$))+">"+c2$+" <MODE:"+Str(Len(d$))+">"+d$+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 2
e$=GetGadgetItemText(#LIGadget_3,i,3);DATUM
f$=GetGadgetItemText(#LIGadget_3,i,4);UTC
ZEILE$=" <QSO_DATE:8>"+StringField(e$,3,".")+StringField(e$,2,".")+StringField(e$,1,".")+" <TIME_ON:4>"+StringField(f$,1,":")+StringField(f$,2,":")+" <TIME_OFF:4>"+StringField(f$,1,":")+StringField(f$,2,":")+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 3
g$=GetGadgetItemText(#LIGadget_3,i,7);RSTAB
h$=GetGadgetItemText(#LIGadget_3,i,8);RSTAN
ZEILE$=" <RST_SENT:"+Str(Len(g$))+">"+g$+" <RST_RCVD:"+Str(Len(h$))+">"+h$+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 4
i$=GetGadgetItemText(#LIGadget_3,i,9);NAME
j$=GetGadgetItemText(#LIGadget_3,i,10);QTH
k$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,11),Chr(216),"0",1,1);DOK
ZEILE$=" <NAME:"+Str(Len(i$))+">"+i$+" <QTH:"+Str(Len(j$))+">"+j$+" <DOK:"+Str(Len(k$))+":C>"+k$+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 5
l$=Left(ReplaceString(GetGadgetItemText(#LIGadget_3,i,12),Chr(216),"0",1,1),2)+"-"+Right(ReplaceString(GetGadgetItemText(#LIGadget_3,i,12),Chr(216),"0",1,1),3);IOTA
If Len(l$)<4:l$="":EndIf
m$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,13),Chr(216),"0",1,1);LOCATOR
ZEILE$=" <IOTA:"+Str(Len(l$))+">"+l$+" <GRIDSQUARE:"+Str(Len(m$))+">"+m$+Chr(10)
;ZEILE 6
n$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,14),Chr(216),"0",1,1);MANAGER
o$=GetGadgetItemText(#LIGadget_3,i,15);QSL
If o$="bestätigt":qs$="Y":qr$="Y"
ElseIf o$="keine QSL":qs$="N":qr$="N"
ElseIf o$="direkt":qs$="Y":qr$="R"
ElseIf o$="Büro":qs$="Y":qr$="R"
EndIf
p$=GetGadgetItemText(#LIGadget_3,i,16);BEMERKUNGEN
ZEILE$="<QSL_VIA:"+Str(Len(n$))+">"+n$+" <QSL_SENT:1>"+qs$+" <QSL_RCVD:1>"+qr$+" <COMMENT:"+Str(Len(p$))+">"+p$+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 7
ZEILE$="<EOR>"+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 8
ZEILE$=""+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
EndIf
Next i
Case "NEIN"
For i=0 To CountGadgetItems(#LIGadget_3)-1
;ZEILE 1
a$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,1),Chr(216),"0",1,1);RUFZEICHEN
b$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,2),Chr(216),"0",1,1);DXCC
;DXCC-NR feststellen
Restore ADIF
Repeat
Read begriff$
If StringField(begriff$,1,"#")=b$:dxcc$=StringField(begriff$,2,"#"):Break:EndIf
Until begriff$="ADIFENDE"
c$=LTrim(GetGadgetItemText(#LIGadget_3,i,5));FREQUENZ
;BAND HERAUSFILTERN
If ValF(c$)>=1.800 And Val(c$)<=1.980:c2$="160M":EndIf
If ValF(c$)>=3.500 And Val(c$)<=3.800:c2$="80M":EndIf
If ValF(c$)>=7.000 And Val(c$)<=7.200:c2$="40M":EndIf
If ValF(c$)>=10.100 And ValF(c$)<=10.150:c2$="30M":EndIf
If ValF(c$)>=14.000 And ValF(c$)<=14.350:c2$="20M":EndIf
If ValF(c$)>=18.068 And ValF(c$)<=18.168:c2$="17M":EndIf
If ValF(c$)>=21.000 And ValF(c$)<=21.450:c2$="15M":EndIf
If ValF(c$)>=24.890 And ValF(c$)<=24.990:c2$="12M":EndIf
If ValF(c$)>=28.000 And ValF(c$)<=29.700:c2$="10M":EndIf
If ValF(c$)>=50.000 And ValF(c$)<=52.000:c2$="6M":EndIf
If ValF(c$)>=144.000 And ValF(c$)<=146.000:c2$="2M":EndIf
If ValF(c$)>=430.000 And ValF(c$)<=440.000:c2$="70CM":EndIf
If ValF(c$)>=1240.000 And ValF(c$)<=1300.000:c2$="23CM":EndIf
If ValF(c$)>=2320.000 And ValF(c$)<=2450.000:c2$="13CM":EndIf
If ValF(c$)>=5650.000 And ValF(c$)<=5850.000:c2$="6CM":EndIf
If ValF(c$)>=10000.000 And ValF(c$)<=10500.000:c2$="3CM":EndIf
;BAND
d$=GetGadgetItemText(#LIGadget_3,i,6);MODE
ZEILE$="<CALL:"+Str(Len(a$))+">"+a$+" <DXCC:"+Str(Len(dxcc$))+":N>"+dxcc$+" <ENTITY:"+Str(Len(b$))+":C>"+b$+" <FREQ:"+Str(Len(c$))+">"+c$+" <BAND:"+Str(Len(c2$))+">"+c2$+" <MODE:"+Str(Len(d$))+">"+d$+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 2
e$=GetGadgetItemText(#LIGadget_3,i,3);DATUM
f$=GetGadgetItemText(#LIGadget_3,i,4);UTC
ZEILE$=" <QSO_DATE:8>"+StringField(e$,3,".")+StringField(e$,2,".")+StringField(e$,1,".")+" <TIME_ON:4>"+StringField(f$,1,":")+StringField(f$,2,":")+" <TIME_OFF:4>"+StringField(f$,1,":")+StringField(f$,2,":")+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 3
g$=GetGadgetItemText(#LIGadget_3,i,7);RSTAB
h$=GetGadgetItemText(#LIGadget_3,i,8);RSTAN
ZEILE$=" <RST_SENT:"+Str(Len(g$))+">"+g$+" <RST_RCVD:"+Str(Len(h$))+">"+h$+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 4
i$=GetGadgetItemText(#LIGadget_3,i,9);NAME
j$=GetGadgetItemText(#LIGadget_3,i,10);QTH
k$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,11),Chr(216),"0",1,1);DOK
ZEILE$=" <NAME:"+Str(Len(i$))+">"+i$+" <QTH:"+Str(Len(j$))+">"+j$+" <DOK:"+Str(Len(k$))+":C>"+k$+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 5
l$=Left(ReplaceString(GetGadgetItemText(#LIGadget_3,i,12),Chr(216),"0",1,1),2)+"-"+Right(ReplaceString(GetGadgetItemText(#LIGadget_3,i,12),Chr(216),"0",1,1),3);IOTA
If Len(l$)<4:l$="":EndIf
m$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,13),Chr(216),"0",1,1);LOCATOR
ZEILE$=" <IOTA:"+Str(Len(l$))+">"+l$+" <GRIDSQUARE:"+Str(Len(m$))+">"+m$+Chr(10)
;ZEILE 6
n$=ReplaceString(GetGadgetItemText(#LIGadget_3,i,14),Chr(216),"0",1,1);MANAGER
o$=GetGadgetItemText(#LIGadget_3,i,15);QSL
If o$="bestätigt":qs$="Y":qr$="Y"
ElseIf o$="keine QSL":qs$="N":qr$="N"
ElseIf o$="direkt":qs$="Y":qr$="R"
ElseIf o$="Büro":qs$="Y":qr$="R"
EndIf
p$=GetGadgetItemText(#LIGadget_3,i,16);BEMERKUNGEN
ZEILE$="<QSL_VIA:"+Str(Len(n$))+">"+n$+" <QSL_SENT:1>"+qs$+" <QSL_RCVD:1>"+qr$+" <COMMENT:"+Str(Len(p$))+">"+p$+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 7
ZEILE$="<EOR>"+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
;ZEILE 8
ZEILE$=""+Chr(10)
AnzBytes=AnzBytes+Len(ZEILE$)
PokeS(*zeiger,ZEILE$,Len(ZEILE$))
*zeiger=*zeiger+Len(ZEILE$)
Next i
EndSelect
CreateFile(21,FILE)
WriteData(*beginn,AnzBytes)
CloseFile(21)
FreeMemory(20)
nrx=MessageRequester("LOGBUCH [ EXPORT > ADIF ]","EXPORT FERTIG [ "+FILE+" ] ÖFFNEN ?",#PB_MessageRequester_YesNo)
If nrx = 6
If RunProgram(FILE) = 0
MessageRequester("LOGBUCH [ EXPORT > ADIF ]","Die soeben exportierte ADIF-Datei konnte nicht geöffnet werden"+Chr(10)+"( Bitte überprüfen, ob ein Standard-Text-Editor existiert )")
ProcedureReturn(i)
Else
RunProgram(FILE)
EndIf
EndIf
EndProcedure
Re: RunProgram(File$)
Sorry, hatte vergessen zu schreiben, dass ich das noch mit 3.80 programmiert habe.
Re: RunProgram(File$)
Code: Alles auswählen
If RunProgram(FILE) = 0
MessageRequester("LOGBUCH [ EXPORT > ADIF ]","Die soeben exportierte ADIF-Datei konnte nicht geöffnet werden"+Chr(10)+"( Bitte überprüfen, ob ein Standard-Text-Editor existiert )")
ProcedureReturn(i)
Else
RunProgram(FILE)
EndIf

:::: WIN 10 :: PB 5.73 :: (x64) ::::
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: RunProgram(File$)
Ist die Sache mit der LogikDrFalo hat geschrieben:Zweimal RunProgram(FILE), kein Wunder also.

Wenn RunProgram() (erstes ausführen) nicht erfolgreich, dann
RunProgram() zweites ausführen
Re: RunProgram(File$)
Ergo: "Else RunProgram(File)" in den Orkusts-soft hat geschrieben:Ist die Sache mit der LogikDrFalo hat geschrieben:Zweimal RunProgram(FILE), kein Wunder also.
Wenn RunProgram() (erstes ausführen) nicht erfolgreich, dann
RunProgram() zweites ausführen

:::: WIN 10 :: PB 5.73 :: (x64) ::::
Re: RunProgram(File$)
Danke Euch beiden,
ich wollte den ersten Aufruf nur als Abfrage eintragen, also dabei wird
das auch schon ausgeführt, na so was dummes,hi.
Änder ich gleich
DANKE
ich wollte den ersten Aufruf nur als Abfrage eintragen, also dabei wird
das auch schon ausgeführt, na so was dummes,hi.
Änder ich gleich
DANKE
Re: RunProgram(File$)
Ich hab's nun abgeändert.
Es geht nun wunderbar... nur einmal WordPad geöffnet! DANKE
Es geht nun wunderbar... nur einmal WordPad geöffnet! DANKE