Pfad abkürzen
Pfad abkürzen
Gibt es eine Api funktion um einen pfad abzukürzen zb. so
Normaler Pfad:
c:\eigene dateien\fotos\bild.jpg
Gekürzter Pfad:
c:\....\....\bild.jpg
Oder muss ich mir da selber eine funktion schreiben?
Normaler Pfad:
c:\eigene dateien\fotos\bild.jpg
Gekürzter Pfad:
c:\....\....\bild.jpg
Oder muss ich mir da selber eine funktion schreiben?
Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell
Re: Pfad abkürzen
So eine änliche Funktion gibt es ( um die eine Frage schonmal zu beantworten )
Nur weiß ich gerade nicht wie sie heißt.
Sie macht aus soeinem Pfad :
C:\Program Files\Windows7\configuration\config.ini
So einem
C:\PROGRA~1\WINDOW~1\CONFIG~1\config.ini
Nur weiß ich gerade nicht wie sie heißt.
Sie macht aus soeinem Pfad :
C:\Program Files\Windows7\configuration\config.ini
So einem
C:\PROGRA~1\WINDOW~1\CONFIG~1\config.ini
Re: Pfad abkürzen
Code: Alles auswählen
TextGadget(#Text, 0, 0, 100, 20, "C:\Langer Pfad Pfad Pfad\test\Datei.dat", #SS_NOTIFY | #SS_PATHELLIPSIS)
Nein, ich denke das erzeugen von DOS-Pfaden meint er nicht. Eher das abkürzen des Pfades bei der anzeige im TextGadget().
"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
Re: Pfad abkürzen
Ja gut aber das könnte man doch aber auch ganz anders machen
z. B so
(Ich hab deine 2 Flags nicht versucht )
z. B so
(Ich hab deine 2 Flags nicht versucht )
Code: Alles auswählen
Path$ = "C:\Windows\System32\drivers\es-ES"
PathLength = Len(Path$)
LeftPath$ = Left(Path$, PathLength/3)
RigthPath$ = Right(Path$, PathLength/3)
Debug LeftPath$ + "..." + RigthPath$
Debug Path$
Re: Pfad abkürzen
Ein regulärer Ausdruck ginge auch:
der macht aus allen Ordnern die länger als 4 Zeichen sind ein ....
Code: Alles auswählen
If CreateRegularExpression(0, "[^\\]{5,}\\")
Debug ReplaceRegularExpression(0, "C:\Program Files\Windows7\kurz\configuration\config.ini", "....\")
EndIf
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- Kai
- Beiträge: 264
- Registriert: 29.09.2005 20:58
- Computerausstattung: iMac 2019
- Wohnort: Hannover
- Kontaktdaten:
Re: Pfad abkürzen
Ich habe mir dafür folgende Procedure geschrieben.
Glaube genau das meint er.
Code: Alles auswählen
EnableExplicit
#Path = "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\TSPDesigner\DesignerFunction.dll"
OpenWindow(0, 0, 0, 200, 200, "Beispiel", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
TextGadget(0, 10, 10, WindowWidth(0) - 20, 15, #Path, #SS_LEFTNOWORDWRAP)
Procedure.s TextGadget_CompactPath(Gadget, Path$)
If IsGadget(Gadget) And GadgetType(Gadget) = #PB_GadgetType_Text
Static hDC.i, hFont.i, sResult.s
hFont = SendMessage_(GadgetID(Gadget), #WM_GETFONT, 0, 0)
hDC = CreateCompatibleDC_(0)
SelectObject_(hDC, hFont)
If hFont And hDC
PathCompactPath_(hDC, Path$, GadgetWidth(Gadget))
sResult = Path$
Else
sResult = Path$
EndIf
DeleteDC_(hDC)
EndIf
ProcedureReturn sResult
EndProcedure
Repeat
Select WaitWindowEvent()
Case #PB_Event_SizeWindow
ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowWidth(0) - 20, #PB_Ignore)
SetGadgetText(0, TextGadget_CompactPath(0, #Path))
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Zuletzt geändert von Kai am 04.11.2009 20:34, insgesamt 1-mal geändert.
Re: Pfad abkürzen
Danke an allen die geholfen haben.
Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell
Re: Pfad abkürzen
Nur damit keiner verwirrt ist: Es geht auch ohne #SS_NOTIFY. Den Flag würde man halt z.B. für Tooltips brauchen...X360 Andy hat geschrieben:Ich hab deine 2 Flags nicht versucht
"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