Foxpro for runaways (Stichpunkte)

  • Alle Felder der Datenbank sind char(#) Felder!
  • Der Programmablauf ist sequentiell
  • Jede Änderung (z.B. eines Variablenwertes oder einer Datenbank) innerhalb einer Funktion wirkt sich auch außerhalb der Funktion aus
  • Variablen sind „abwärts“ Global, „aufwärts“ nicht.
    Eine Variable einer aufrufenden Funktion ist auch in einer von dort aufgerufenen Funktion verfügbar. Anders herum nicht.
  • Wenn INDEX > 0 gestezt ist/wird, folgt bei SEEK kein Feldname. Die Suche wird automatisch auf die Felder des Indexes durchgeführt. SKIP wählt den nächsten Datensatz.
  • LOCATE sucht ohne Index. CONTINUE wählt den nächsten Datensatzt
  • EOF zeigt an, dass kein Suchergebnis gefunden wurde. FOUND ist das Gegenstück.
  • SELECT gibt die aktuelle Datenbankebene zurück. SELECT(#) wählt eine Datenbankebene # aus.
    SELECT [Name] wechselt zur Datenbank [Name]
    SELECT([Name]) verwendet [Name] als Variable und wechselt zur Datenbank mit Namen aus dem Wert der Variable.
  • SET ORDER TO [INDEXNAME]
  • SEEK, LOCATE suchen nach „beginnt mit“.
    Wenn nach „ist gleich“ gesucht werden soll, muss der Suchbegriff mit Leerzeichen aufgefüllt werden, bis die Char-Länge des Feldes erreicht ist.
  • IF x = „abz“
    entspricht: x beginnt mit
  • IF x <> „abz“
    entspricht: x beginnt nicht mit
  • &x
    entspricht in PHP: $$x (Wert der Variable $x als Variablenname)
  • ?
    entspricht in PHP: echo (Textausgabe)
  • IF „abc“ $ x
    entspricht: enthalten in
  • IF x > „!“
    entspricht: nicht leer

Calculate the dimension best fit into the max size (PHP)

// Set original size as default return dimension.
$dimension = new MyDimension($width, $height);
 
// Check if original size is bigger than max size.
if ($width <= $maxWidth && $height <= $maxHeight) {     return $dimension; }   // We need to calculate the maximum best fit dimension.   // Calculate orignal and maximum ratio. $originalRatio = $width/$height; $maxRatio = $maxWidth/$maxHeight;   // Based on the ratios, calculate new width and height if ($maxRatio < $originalRatio) {     // Best fit ratio for width   $dimension->setWidth($maxWidth);
 
  // Only if ratio is on, height must be calculated on ratio
  if ($regardRatio) {
 
    $dimension->setHeight(round($maxWidth/$originalRatio));
  }
} else {
 
  // Best fit ratio for height
  $dimension->setHeight($maxHeight);
 
  // Only if ratio is on, width must be calculated on ratio
  if ($regardRatio) {
 
    $dimension->setWidth(round($maxHeight*$originalRatio));
  }
}
 
return $dimension;

Get the timestamp for the first day (monday) of a week number

// Offset: numeric weekday of January,
// 1st in given year (e.g. 'Donnerstag' => 4)
$offset = date('w', mktime(0, 0, 0, 1, 1, $weekNumber);
 
// Calculate timestamp of monday from above offset
$offset = ($offset < 5) ? 1-$offset : 8-$offset; $monday = mktime(0, 0, 0, 1 , 1+$offset, $weekNumber);   // Finally: calculate timestamp of monday in requested week return strtotime('+' . ($dateArray[1] - 1) . 'weeks',                  $monday);