Software > Coding

Gemeinschaftsprojekt?

<< < (4/18) > >>

virgo660824:
Also ich schließe mich ragnar und FM an  :D

Versionsverwaltung mit SVN ist auch ne sehr gute Idee.

m0n0:
Man könnte auch so anfangen das man eine liste der benötigten funktionen erstellt. Also prototypisiert.

Ich mach mal - vereinfacht und auf deutsch - würde ich bei einem normalen programm nicht machen ;)


--- Code: ---
/* füllt eine liste mit den informationen die auf der Partition C: gefunden werden: */
lese_autostart_programme()

/* bennent datei um und updatet die liste */
deaktiviere_autostart_programm( programmname )

/* wartet auf tastendruck und fuert je nach taste ein anderes unterprogramm aus, bzw. beendet den bootmanager */
behandle_benutzereingabe( maximale_wartezeit )

/* listet die programmliste auf dem bildschirm auf */
programmliste_ausgeben( filter );

/* sorgt dafür das nur ein bestimmter typ von autostart programm auf dem bildschirm ausgegeben wird, z.b. .acc, .cpx oder .prg*/
filter_setzen( typ )

/* markiert ein programm innerhalb der liste */
cursor_setzen( y_posiiton )


--- Ende Code ---

auf dem bildschirm könnte das dann so aussehen:

--- Code: ---SIMPLE BOOT MANAGER

[Filter: PRG]
-----------------
  fastmous.prg
> mint.prx
  nvdi.prg





---------
F1 = prg (default), F2 =  acc, F3 = cpx, Enter = eintrag de/aktivieren, F10 = booten

--- Ende Code ---


ragnar76:
Einen Bootmanager der Firebee  tauglich ist? Hört sich doch gut. An. Kann zwar nicht Programmieren - naja
printf("hallo welt!\n"); bekomm ich noch hin - aber wenn was ist kann ich trotzdem irgendwie helfen. Dokus schreiben oder so :)

tuxie:
Ich würde mal mit ein paar Codeschnipsel beginnen.

--- Zitat ---     #include <stdio.h>
#include <sys/types.h>
#include <dirent.h>

string lese_autostart_programme($autodir)
{
  DIR *dp;
  struct dirent *ep;    
  dp = opendir ($autodir);

  if (dp != NULL)
  {
 $i=0;
    while (ep = readdir (dp))
      $autofiles[$i] = ep->d_name;
    (void) closedir (dp);
  }
  else
    perror ("Couldn't open the directory");

  return $autofiles;
}


--- Ende Zitat ---

Der Rückgabewert müßte ja rein theoretisch ein array sein, weiß nur nicht 100pro ob das so funktionieren würde, ist eine ganze weile her wo ich das letzte mal C Programmiert habe so 3 Jahre.



m0n0:
Hallo,

wir müssten eigentlich noch festlegen mit welche Entwicklungsumgebung gearbeitet wird. Ich bin für PureC bzw. AHCC. Dann kann sich ein Anfänger auch auf den ersten teil des Programmier-Tutorials hier im Forum beziehen. Und man kann den Bootmanager auch auf dem ST kompilieren :) Aber ich weiss das es mit der dirent struktur und portabilität nicht so weit her ist ( ...ist unter den unterschiedlichen compilern unterschiedlich implementiert... )


--- Zitat ---Der Rückgabewert müßte ja rein theoretisch ein array sein, weiß nur nicht 100pro ob das so funktionieren würde, ist eine ganze weile her wo ich das letzte mal C Programmiert habe so 3 Jahre.
--- Ende Zitat ---

Rein theoretisch ja, soweit ich weiss geht das sogar irgendwie. Aber das werden wir anders machen - ohne Rückgabewert, mit einer Globalen Variable. Denn auf die Liste muss eh auch von anderen Programmen aus zugegriffen werden.

Ausserdem kommen wir bei diesen Überlegungen auch schon zu den ersten unwegsamkeiten von C - das einlesen eines Verzeichnis ist im ANSI C standard soweit ich weiss nicht definiert. In deinem code werden erweiterungen der Sprache verwendet ( DIR Struktur, dirent.h etc. ) - Ich glaube am besten ist es, wenn wir an diesem Punkt nicht auf solche erweiterungen setzen - sondernd auf die Funktionen die uns TOS zur verfügung stellt. Diese können dann zwar nicht unter anderen Betriebs-Systemen genutzt werden - dafür können wir aber relativ sicher sein das jeder Compiler für den Atari diese Funktionen anbietet. (Sehr sicher sogar )

TOS (bzw. GEMDOS) bietet hierfür die Funktionen Fsfirst() / Fsnext().

Aber das ist durchaus noch eine Überlegung, keine Festlegung :)



Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln