Beleg 39467  1.0
Makrodefinitionen | Funktionen | Variablen
LendLibIn

Funktionen für jegliche Art von Ausgabe. Mehr ...

Makrodefinitionen

#define MALLOCERR   "Fehler bei der Speicherzuweisung"
 

Funktionen

void readfile ()
 Liest Verleihmediendaten aus Datei aus. Mehr ...
 
int getSize (FILE *libdb)
 Gibt Größe der gespeicherten CSV-Datenbank aus. Mehr ...
 
void getInput ()
 Verarbeitet Nutzerinput im Terminal. Mehr ...
 
void getPost ()
 Verarbeitet POSTs des CGI. Mehr ...
 
void replaceSpecial (char *inS, char *outS)
 Ersetz '+' mit Leerzeichen und andere Sonderzeichen in HTML-Eingabe. Mehr ...
 
char * strtok2 (char *str, char const *delims)
 Eigenes strtok, welches auch leere Einträge ausgibt. Mehr ...
 
void replaceSpecial ()
 

Variablen

FILE * libdb
 
char vbuf [128]
 
const char * filename
 
char posted [256]
 
char cTitle [128]
 
char cAuthor [128]
 
char cLendee [128]
 

Ausführliche Beschreibung

Funktionen für jegliche Art von Ausgabe.

Dokumentation der Funktionen

void getInput ( )

Verarbeitet Nutzerinput im Terminal.

Hilfezeilen mit Anweisungen anzeigen

Dateien noch einmal auflisten

Ausleihmedium hinzufügen

  • Eingabe Medienart
  • (Festlegung der Medienart durch entsprechende Zahl aus mType oder Anfangsbuchstabe: Buch, Cd, Dvd)
  • (Titel, Interpret/Autor und Ausleihender eingeben lassen) und jeweils in freigegebenen Speicher schreiben
  • Eingegebene Daten als Medium speicher und in Liste einfügen

Medien sortieren, dazu nach Sortierkategorie fragen

Medium löschen, dazu ID abfragen

Medien finden, dazu nach Suchkategorie (Titel oder Ausleihender) und der zu suchenden Zeichenkette fragen

Ansonsten Programm beenden

void getPost ( )

Verarbeitet POSTs des CGI.

Der POST wird jeweils mit strtok2 auseinandergeschnitten und verarbeitet. Die vorgehensweise ist ähnlich wie bei der Terminaleingabe.

POST einlesen

POSTs unterscheiden sich durch den Anfangsbuchstaben (wie bei Terminaleingabe)

  • Sucheingabe verarbeiten
  • Etwas finden
  • Medium einfügen
  • (Funktioniert wie bei Terminaleingabe: Es wird jeweils Speicher bereitgestellt und Angaben darin geschrieben.
  • Löschen
int getSize ( FILE *  libdb)

Gibt Größe der gespeicherten CSV-Datenbank aus.

Parameter
libdbEine Datei
Rückgabe
Anzahl von Linien (also Einträgen)

Quelle: http://stackoverflow.com/a/1910795

  • Anzahl der Zeilenumbrüche zählen
  • Im Fall, dass die letzte Zeile keinen Umbruch enthält oder leer ist (bis auf den Umbruch), wird diese dazu gezählt oder eben nicht
void readfile ( )

Liest Verleihmediendaten aus Datei aus.

Je nach Terminal- oder CGI-Anwendung ist der Dateipfad anders

  • Datei öffnen
  • Datei Zeilenweise durchgehen und als Medium in Liste einfügen
void replaceSpecial ( char *  inS,
char *  outS 
)

Ersetz '+' mit Leerzeichen und andere Sonderzeichen in HTML-Eingabe.

Parameter
inSZeichenkette mit + und Sonderzeichen
outSZeichenkette, in die die Eingabe mit Ersetzung geschrieben werder soll
char * strtok2 ( char *  str,
char const *  delims 
)

Eigenes strtok, welches auch leere Einträge ausgibt.

Parameter
strDer String
delimsDie Trennzeichen Quelle: http://stackoverflow.com/a/8706031