2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Anfängerfragen zum Programmieren mit PureBasic.
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag 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
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag 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

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
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

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag von NicTheQuick »

Haha, das ist im Grunde ja der gleiche Code wie ich geschrieben habe. :lol:
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.
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag 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
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag 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?

Code: Alles auswählen

IncludeBinary "safoall.ttf"
Und du erwähntest dass du IncludeFile verwendest, aber IncludeBinary wäre hierfür richtig.

Ansonsten mach doch mal auf dem Terminal

Code: Alles auswählen

file /home/peter/safoall.ttf
und dann bitte

Code: Alles auswählen

stat /home/peter/safoall.ttf
um zu sehen ob überhaupt die Rechte richtig sind.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag von mk-soft »

Den code mal zeigen ...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
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

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag 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.
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag 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
Heinz Mendax
Beiträge: 50
Registriert: 29.03.2013 12:25
Wohnort: Eisenach

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag von Heinz Mendax »

Bild
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Re: 2 ärgerliche Fälle kein Linuxprogramm fertigzukriegen

Beitrag 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.
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten