Seite 2 von 3
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 16.05.2023 15:26
von Heinz Mendax
Hallo !
Die Verwandlung der TTF-Datei in Datazeilen wie bei FontRegister.pb wäre noch eine Option. Aber wie geht das. Muß man die gesamte Datei
in einem String speichern und immer 8bytes-weise blockweise auslesen und daraus die Datazeile aufstellen. Helft doch noch mal.
Heinz
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 16.05.2023 15:51
von mk-soft
Nein ...
So anpassen. Der path zur datei muss natürlich stimmen (Linux groß klein schreibung beachten)
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - RegisterFontFile example file
;
; (c) Fantaisie Software
;
; ------------------------------------------------------------
;
; NOTE: This file could compile with the demo version !
;
Procedure Rebuilt_FontFile_From_DataSection()
Protected file, size
; Create the font file...
file = CreateFile(#PB_Any, GetTemporaryDirectory() + "ascii.ttf")
If file
size = ?ttf_end - ?ttf_start
WriteData(file, ?ttf_start, size)
CloseFile(file)
EndIf
EndProcedure
; Now let's open a Window with a ListIconGadget
OpenWindow(0, 0, 0, 920, 670, "Font US-ASCII", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 0, 0, 920, 670, "0..31", 110, #PB_ListIcon_GridLines)
AddGadgetColumn(0, 1, "32..64", 110)
AddGadgetColumn(0, 2, "65..96", 110)
AddGadgetColumn(0, 3, "97..128", 110)
AddGadgetColumn(0, 4, "127..160", 110)
AddGadgetColumn(0, 5, "161..192", 110)
AddGadgetColumn(0, 6, "193..224", 110)
AddGadgetColumn(0, 7, "225..255", 110)
; Rebuilt the font file from the data section if necessary.
If FileSize(GetTemporaryDirectory() + "ascii.ttf") = -1
Rebuilt_FontFile_From_DataSection()
EndIf
; Now to use the new font, let's register it.
If RegisterFontFile(GetTemporaryDirectory() + "ascii.ttf")
LoadFont(0, "ascii", 12)
SetGadgetFont(0, FontID(0))
Define i
For i = 0 To 31
AddGadgetItem(0, -1, Str(i) + " " + Chr(i * Bool(i <> #LF And i <> #Null) + 32 * Bool(i = #LF Or i = #Null)) + #LF$ + Str(i+32) + " " + Chr(i+32) +
Chr(10) + Str(i + 64) + " " + Chr(i + 64) + Chr(10) + Str(i + 96) + " " + Chr(i + 96) +
Chr(10) + Str(i + 128) + " " + Chr(i + 128) +Chr(10) + Str(i + 160) + " " + Chr(i + 160) +
Chr(10) + Str(i + 192) + " " + Chr(i + 192) + Chr(10) + Str(i + 224) + " " + Chr(i + 224))
Next i
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
; The font file inside the datasection.
DataSection
ttf_start:
IncludeBinary "C:\Users\michael\Documents\ascii.ttf"
ttf_end:
EndDataSection
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 16.05.2023 16:12
von NicTheQuick
Haha, das ist im Grunde ja der gleiche Code wie ich geschrieben habe.
Ich wusste nicht, dass es da schon einen Beispielcode gibt. Aber wenn Heinz das Problem mit dem IncludeBinary nicht hinkriegt, dann wird das so oder so nichts.
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 16.05.2023 20:12
von Heinz Mendax
Hallo !
Er (ich) kriegt das wirklich nicht hin.Wenn der Font aber installiert ist, klappt alles auch ohne Includebinary. Aber das ist ja nicht der Sinn, den Anwender zum Installieren eines fremden Fonts nötigen. Der müßte dann mit dem Executable mitgeliefert werden. Aber verratet mir doch bitte, wie
die Datazeilen in dem Programm RegisterFontFile.pb erstellt wurden.
Heinz
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 16.05.2023 20:52
von DarkDragon
Heinz Mendax hat geschrieben: 16.05.2023 20:12
Hallo !
Er (ich) kriegt das wirklich nicht hin.Wenn der Font aber installiert ist, klappt alles auch ohne Includebinary. Aber das ist ja nicht der Sinn, den Anwender zum Installieren eines fremden Fonts nötigen. Der müßte dann mit dem Executable mitgeliefert werden. Aber verratet mir doch bitte, wie
die Datazeilen in dem Programm RegisterFontFile.pb erstellt wurden.
Hast du mal versucht die Datei neben die source datei zu packen und mit relativem Pfad zu inkludieren?
Und du erwähntest dass du IncludeFile verwendest, aber IncludeBinary wäre hierfür richtig.
Ansonsten mach doch mal auf dem Terminal
und dann bitte
um zu sehen ob überhaupt die Rechte richtig sind.
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 16.05.2023 21:34
von mk-soft
Den code mal zeigen ...
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 16.05.2023 22:03
von NicTheQuick
mk-soft hat geschrieben: 16.05.2023 21:34Den code mal zeigen ...
Er hat ja hoffentlich schon die bisherigen Codes 1:1 so getestet. Und wenn die trotzdem fehlschlagen, fehlen uns Informationen.
Aber ja, mk-soft hat trotzdem Recht. Zeig uns mal den Code, der fehlschlägt.
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 17.05.2023 00:27
von Heinz Mendax
Hallo !
Die Prüfungen im Terminal ergaben:
peter@peter-virtual-machine:~$ file /home/peter/safoall.ttf
/home/peter/safoall.ttf: cannot open `/home/peter/safoall.ttf' (No such file or directory)
peter@peter-virtual-machine:~$ stat /home/peter/safoall.ttf
stat: der Aufruf von statx für '/home/peter/safoall.ttf' ist fehlgeschlagen: Datei oder Verzeichnis nicht gefunden
peter@peter-virtual-machine:~$
[img]f:/sammler/safolinux.jpg[/img]
Ich würde zum Beweis,das die Schriftdatei im Verzeichnis /home/peter/safoall.ttf ist, ein Bildschirmbild schicken, weiss
aber nicht wie das hier gehen.soll.
Heinz
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 17.05.2023 00:44
von Heinz Mendax
Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen
Verfasst: 17.05.2023 05:10
von #NULL
@Heinz Mendax
NicTheQuick hat geschrieben: 16.05.2023 10:10
Denkt dran, dass unter Linux die Groß- und Kleinschreibung von Dateinamen wichtig ist.