Purebasic von USB-Stick

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
shim
Beiträge: 65
Registriert: 12.09.2004 23:09

Purebasic von USB-Stick

Beitrag von shim »

Hallo!

Für alle, die Purebasic so wie ich vom USB-Stick starten:

Code: Alles auswählen

Global version$, ininame$, csv$, lf$, ExePath$,getapp$

Procedure SetIni(Abschnitt.s,Schluessel.s,Wert.s,Datei.s) 
  WritePrivateProfileString_ (Abschnitt,Schluessel,Wert,Datei) 
EndProcedure 

Procedure.s getini(Abschnitt.s,Schluessel.s,Datei.s) 
     Value.s = Space(255) 
     Result.l = GetPrivateProfileString_ (Abschnitt, Schluessel, "", Value, Len(Value), Datei) 
     Value = Left(Value, Result) 
     ProcedureReturn Value 
EndProcedure 

Procedure Delinikey(Abschnitt.s,Schluessel.s,Datei.s) 
     WritePrivateProfileString_ (Abschnitt, Schluessel, 0,Datei) 
EndProcedure 

Procedure Pref_DelAbschnitt(Abschnitt.s,Datei.s) 
     WritePrivateProfileString_ (Abschnitt, 0, "",Datei) 
EndProcedure 


getapp$=Space(1000) : GetModuleFileName_(0,@getapp$,255)
ininame$=LCase(getapp$)
ininame$ = ReplaceString(ininame$, ".exe", ".ini" ,0 ,1)
logfile$ = ReplaceString(ininame$, ".ini", "_log.txt" ,0 ,1)
ExePath$ = GetPathPart(getapp$)

lw$      =Left(ExePath$,2)+"\purebasic\"
exad$    =Left(ExePath$,2)+"\basicprogs\"
ppe$    =lw$+"PureBasic.exe"
ininame$=lw$+"PureBasic.prefs"
lfcr$=Chr(13)+Chr(10)

;Recent files

rr =Val(getini("RecentFiles","HistorySize",ininame$))

For r=1 To rr

Value$ =getini("RecentFiles","RecentFile_"+Str(r),ininame$)

 Value$=Right(Value$,Len(Value$)-2)
 Value$=Left(ExePath$,2)+Value$
Result=SetIni("RecentFiles","RecentFile_"+Str(r),Value$,ininame$)

Next r

rr =Val(getini("OpenedFiles","Count",ininame$))

For r=1 To rr

Value$ =getini("OpenedFiles","OpenedFile_"+Str(r),ininame$)
Value$=Right(Value$,Len(Value$)-2)
 Value$=Left(ExePath$,2)+Value$
Result=SetIni("OpenedFiles","OpenedFile_"+Str(r),Value$,ininame$)

Next r
RunProgram(ppe$,ProgramParameter(),"")
End
Da ich auch meine Quellcodes auf dem Stick habe, erleichtert mir dieses kleine Programm den Start enorm. Egal welcher Laufwerksbuchstabe der Stick hat, alle Dateien werden korrekt in den Editor geladen.

Lars
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8812
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Kannst du noch etwas genauer erklären, was der Code macht und wie
man ihn einsetzt? Ich möchte das nicht selbst herausfinden.

Danke!
shim
Beiträge: 65
Registriert: 12.09.2004 23:09

Beitrag von shim »

Klar doch...

Der Code ändert die purebasic.pref Datei und setzt sämtliche Pfadangaben innerhalb dieser Datei auf die aktuelle Laufwerkskennung.

Die resultierende EXE muß sich dabei auf dem Stick befinden, der Purebasic Ordner sollte "Purebasic" heißen und.... das ist natürlich nur bei mir so: meine Dateien befinden sich in "basicprogs", ebenfalls auf dem Stick.

So kann auf jedem System, unabhängig vom vergebenen Laufwerksbuchstaben für den Stick nahtlos weitergearbeitet werden. Es werden sämtliche geladene Dateien wieder korrekt hergestellt.

Achtung: PureBasic.prefs wird modifiziert!

Lars
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag von super_castle »

"Kannst du noch etwas genauer erklären, was der Code macht und wie
man ihn einsetzt? Ich möchte das nicht selbst herausfinden. "

eigentlich macht gerade das experimentieren spass. ansonsten brauchst du erst gar nicht proggen. versuche müssen gemacht werden. purebasic fordert einen mit dem sehr grossen befehlsumfang geradezu heraus. also nur mut und keine angst.

mfg castle
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@supercastle

äh.. wus?

glaub ja nich was ich da les... :lol:


sorry, aber das programm verändert die purebasic.pref

wahrscheinlich wollte NTQ (der hier schließlich moderator ist)
durch die blume sagen, dass shim vergessen hat, darauf hinzuweisen.


mit proggies, die irgendwelche einstellungen verändern rumzuprobieren,
kann echt zusätzliche arbeit erzeugen.
viele mögen sowas garnicht.
also nicht: "nur mut, fleißig ausprobieren"
sondern: wenn eure proggies grundeinstellungen verändern, weist darauf hin,
oder vermeidet sowas, das mag nämlich niemand.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag von stbi »

Soweit ich das beurteilen kann, genügt es, in der purebasic.prefs alle Pfadangaben zu relativieren, z.B. aus D:\Programme\Purebasic\... macht man \Programme\Purebasic...

<)
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
shim
Beiträge: 65
Registriert: 12.09.2004 23:09

Beitrag von shim »

Hui!

Mit den relativen Pfaden mag das ja stimmen, aber manchmal lade ich dann doch eine neue Datei...

und ob nun der Pfad mit dem aktuellen Laufwerksbuchstaben oder mit keinem Laufwerksbuchstaben versehen wird, ist Geschmacksache. Was da besser ist, wer kann es wissen. Ich bin jedenfalls ganz froh, Purebasic von der obersten Ebene mit einem Doppelklick starten zu können.

Bis dahin

P.S.: Ein Progrämmchen sollte schon erklärt werden und ich denke, ein programm "einfach zu starten" war bestimmt nur ironisch gemeint.
Ich habe einfach gedacht, das sich das Programm fast selbst erklärt...(wie im übrigen viele Purebasic-Programme...deswegen finden wir Purebasic ja so toll, oder??)

Wenn noch jemand Bedarf hat, mehr über das Programm zu erfahren, möge sich bitte melden. Es macht wirklich nichts verheerendes und nutzt nichts außergewöhnliches. Zur Sicherheit kann man die purebasic.pref Datei sichern.
Antworten