Sonntag, 24. Mai 2015

Yab - Datei oder Verzeichnis


Wie finde ich heraus, ob ich eine Datei oder ein Verzeichnis über ein Filepanel oder Dropzone verarbeiten muss?

Meine diesbezügliche Lösung beinhaltet eine IF-Abfrage und eine Subroutine.

If-Abfrage:


Folder$=Quellvariable$


if(IfDirectory(Folder$))then
      is_an_directory=1
else
      is_an_directory=2
endif

print is_an_directory


Subroutine:


sub IfDirectory(filename$)
      return not system("test -d "+filename$)
end sub
Um herauszufinden, ob ich ein Verzeichnis oder eine Datei über ein Filepanel oder Dropzone zu verarbeiten habe, übergebe ich meinen Dateipfad an die Variable Folder$ und verwende den Test Befehl um zu prüfen, ob ich ein Verzeichnis in der Variablen übergeben habe.


Ist die Überprüfung positiv wird durch die If-Abfrage die Zalenvariable is_an_directory auf 1 gesetzt. Ist es kein Verzeichnis, wird der Wert auf 2 gesetzt.

Beispiel: Egal was übergeben wird, es wird der Dateipfad ermitteln


If-Abfrage:


if(IfDirectory(Quellvariable$)) then
      is_an_directory=1
      Folder$= Quellvariable$
else
      is_an_directory=2
      dim SplitFolderPath$(1)
            splitting = split(Quellvariable$, SplitFolderPath$(), "/")
            for i = 2 to splitting-1
                  Folder$=Folder$+"/"+SplitFolderPath$(i)
            next i
            print "folder:"+Folder$
endif


Subroutine:


sub IfDirectory(filename$)
      return not system("test -d "+filename$)
end sub

In diesem Beispiel erweitern wir diese Überpürfung und ermitteln, egal was wir abfragen (Datei oder Verzeichnis),  wie der Dateipfad ist.


Ermittelt der test Befehl ein „nicht“ Verzeichnis, wird die Quellvariable über einen Array (SplitFolderPath$()) in seine Einzelteile zerschnitten. Um dies zu tun, wird bei jedem „/“ Zeichen eine neuer Eintrag im Array angelegt.


Danach werden alle Arrayeinträge wieder zusammengesetzt, mit Ausnahme des letzten Eintrages.

Freitag, 22. Mai 2015

Meine Programme für aktuelle Nightly Builds


Habe, nachdem ich yab und die yabIDE auf meiner aktueller Haiku nightly  zum Laufen bekommen habe, einige meiner Programme neu gebunden.

Diese sind auf der BeSly im Downloadbereich zu finden.

Folgende Programme sind neu gebunden:

-     BashHistorySwitcher 0.5 pm: Ein Programm um die BashHistory zu speichern und bei bedarf zu tauschen

-     BuildLOG 0.5 pm: Ein Programm, mit welchen man seine Erfahrungen beim Kompilieren von Programmen/Spielen archivieren kann.

-     EGSL IDE 1.2-2 pm: Eine Entwicklungsumgebung für die EGSL Programmiersprache (Leider ist EGSL derzeit nicht lauffähig (muss neu kompiliert werden))

-     Elektrican Calculator pm: Ein Taschenrechner für Elektriker

-     EUAE Launcher 0.5 pm: Eine Benutzeroberfläche für den euae AMIGA Emulator.

-     HPKG Creator 0.7-1 pm: Ein Programm mit welchen man Haiku Pakete erstellen kann (Kein Upload zum HaikuDepot).

-     ISOFileCreator 0.8 beta pm: Ein Programm mit welchen man ISO Images erstellen kann.

-     KeenDöskopp 0.6 pm: Eine Sammlung von Spielen für das Trainieren des Gehirns.

-     LBackup 1.1 pm: Ein kleines Backup Programm.

-     SingleLine Editor 0.3 pm: Ein experimenteller Texteditor mit Einzeilenbearbeitung.

-     TarGUI 1.2 pm: Eine Benutzeroberfläche für das tar Komprimierungsprogramm (bash).

-     BeSly TutorialFinder 1.3 pm: Ein Programm mit welchen man die BeSly Tutorials durchsuchen kann.
      -     ZipGUI 1.0 pm: Eine Benutzeroberfläche für das zip  Komprimierungsprogramm (bash).

Donnerstag, 21. Mai 2015

HPKG Creator



Nach langer Zeit der Untätigkeit im Programmieren in yab, hat ausgerechnet der HPKGCreator dafür gesorgt, dass meine Lust zu Programmieren wieder geweckt wurde.

Der HPKGCreator entstand Anfang letzten Jahres, nachdem ich mich längere Zeit mit dem Erstellen einer HPKG Datei beschäftigt hatte. Dies geschah auf Basis des auf der Haiku Webseite veröffentliche Anleitung über das Erstellen einer HPKG Datei. Da man über diese Anleitung alles von Hand erstellen und bearbeiten musste, kam mir schnell die Idee, dazu eine GUI zu bauen. Das Problem war nur, ich habe es lange Zeit nicht hinbekommen mit Hilfe der Anleitung ein funktionierendes Paket zu erstellen. Über zahlreiche Gespräche im IRC habe ich dann verlauten lassen, dass wenn ich es je hinbekomme eine HPKG Datei zu erstellen, dass ich dann eine GUI dazu bauen werde.

Als ich den HPKG Creator dann erstellt hatte kamen, wie üblich, kaum Rückmeldungen. Da ich selber mit anderen Projekten beschäftigt war und dann in eine tiefe Programmierlustlosigkeit gefallen war, habe ich nie eine neue Version mehr erstellt.

Erst nach Schließung des Software Archivs Haikuware kamen auf einmal Anfragen bezüglich dem HPKGCreator, der längst auf aktuellen Nightly Builds nicht mehr lief.

Habe daraufhin versucht yab auf einer aktuellen Nightly Version zu installieren, was mit den HPKG Dateien über HaikuDepot und bbjimmy nicht geglückt war. War danach kurz davor die ganze Sache ab zu blasen, habe dann aber ein Script erhalten, über welches yab heruntergeladen und kompiliert wurde.  Daraufhin ging die yab-IDE und die BuildFactory, was es mir ermöglichte den HPKG Creator neu zu Erstellen und online zu stellen.

Durch Gespräche im IRC und in BeShare wurde ich dann animiert den HPKGCreator  zu aktualisieren und zu erweitern. Derzeit arbeite ich daran, das man über „Dropzonen“ Daten kopieren, in Verzeichnisse wechseln oder vorhandene .ProgramInfo Dateien öffnen kann. Auch haben sich einige Eintragungen in der .ProgrammInfo Datei geändert die angepasst wurden.
Wann ich die neue Version fertig habe, kann ich bisher noch nicht sagen, möchte meine neu gewonnene Programmierfreude auch nicht mit Termindruck belasten.

Montag, 18. Mai 2015

HPKG Wahn


Ich weiß es ist verlockend HPKG Dateien zu erstellen, da diese dann über einen Doppelklick zu installieren sind. Leider ist das Package Management System von Haiku noch nicht vollständig ausgereift und es gibt ständig Änderungen.

So kommt es recht häufig vor das einmal wunderbar funktionierende Pakete auf einmal nicht mehr ihren Dienst tun. Wie kürzlich erlebt beim Versuch die aktuelle yab Version von bbjimmy zu installieren, Paket konnte nicht installiert werden, oder wurde installiert aber es ist für mich als „Hilfe ich kenne mich auf den Nightlys nicht aus“ Nutzer nicht auffindbar.

Da gelobe ich mir ein zip, tar,... Paket herunter zu laden und selber dieses Programm zum laufen zu bringen.

Ich würde mir wünschen das die Leute, die derzeit HPKG Dateien erstellen, auch parallel dazu ein normales zip oder tar Archiv erstellen würden.

BuildLOG Projekt


BuildLOG ist ein in yab geschriebenes Archiv-Programm, mit welchen man Informationen über den „build“ Prozess eines Programms oder Spiels archivieren kann.

Immer wieder habe ich versucht diverse Programme für Haiku zu kompilieren. Leider bin ich auf Grund von mangelnden Erfahrungen in Bezug auf das Kompilieren und Programmieren in C/C# (und anderer Sprachen) gescheitert. Dies auch oft bei Programmen, die es in der Vergangenheit bereits für BeOS/Zeta/Haiku gegeben hat.
Leider haben die Leute, die diese Programme damals portiert haben, meist keine genauen Beschreibungen hinterlassen mit wessen Hilfe man heute, auch als nicht Entwickler, Erfolgserlebnisse feiern könnte.

Hier setzt das Archiv-Programm an, denn es ermöglicht genau diese Informationen zu Archivieren.

Wer von Euch also Lust hat mir bei diesen Projekt zu helfen, kann sich das Programm von der Download Seite der BeSly herunterladen, Informationen eintragen und dann die erstellten „LOG“-Dateien an mich senden. Diese werden dann zu den BuildLOG Paket auf der BeSly hinzugefügt.