php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.04.2009, 11:25  
Benutzer
 
Registriert seit: 16.03.2009
Beiträge: 92
SimStar001 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Records mit PHP ?

Hallo,

ich möchte gerne mittels PHP Funktionen meines Programms aus Delphi nachbauen und in die Website einbinden.

Dazu benötige ich Records. Ist das in PHP überhaupt möglich?

Ich gebe hier mal den Aufbau meines Records an:

Code:
type LoA = record
      destination : string;
      routing : string;
      FlightLevel : string;
      Handoff : string;
      Receiving_Sektor : string;
      end;

type Controller1 = record
      belegt : boolean;
      CallSign : string;
      Frequenz : string;
      online : boolean;
      end;

Type Controller_ = record
      Eins : Controller1;
      Zwei : Controller1;
      Drei : Controller1;
      Vier : Controller1;
      end;


type RunwayDaten = record
      Name : String[3];
      Kurs : integer;
      Anflug : string[4];
      Frequenz : string[6];
      aktiv : boolean;
      Seitenwind : extended;
      Rueckenwind : extended;
      end;

type Chart = record
      AirportName : string;
      ChartName : string;
      Filename : string;
      end;

// für spätere SID auswahl
type SID_DATEN = record
      SID : string;
      Runway : string;
      Initial_Climb : string;
      end;

type Airport = record
      ICAO : string[4];
      lat : extended;
      lon : extended;
      Windrichtung : integer;
      Windgeschwindigkeit : integer;
      Metar : string;
      Runways : array [0..19] of RunwayDaten;
      Departures : array of SIDs;
      Waypoints : array of string;
      Ground : string;
      Ground_Name : string;
      Tower : string;
      Tower_Name : string;
      Approach : string;
      Approach_Name : string;
      end;

type Waypoints_ = record
      Name : string;
      lat : extended;
      lon : extended;
      end;

type Airways_ = record
      Name : string;
      Waypoint : array of Waypoints_;
      end;


           // Umrechnungsfaktor * 1.000.000


type Sektor_ = record
      Name : string;
      lat1 : extended;
      lon1 : extended;
      lat2 : extended;
      lon2 : extended;
      Koordinaten : array of TPoint;
      Airports : array of Airport;
      WayPoints : Array of WayPoints_;
      Airways : array of Airways_;
      Charts : array of Chart;
      end;


type Strips = record
      CallSign : string;
      ICAO_Departure : string[4];
      ICAO_Arrival : string[4];
      SID : string;
      Bahn : string;
      InitialClimb : string;
      Squawk : string[4];
      cleared : string[1];
      CallSign_Name : string;
      ICAO_Departure_Name : string;
      ICAO_Arrival_Name : string;
      Aircraft : string;
      WakeTurbulance : string[1];
      Alternate_Waypoint : Waypoints_;
      Kurs : integer;
      Zeit : string[4];
      Zeit_Erwartet : string[4];
      Cruise_Level : string;
      Aktuelle_Hoehe : string;
      Freigabe_Hoehe : string;
      Flugart : string[1]; // Dep oder Arr oder CTR
      Flugart_alt : string[1]; // für stripumwandlung
      Flugregel : string[1]; // IFR oder Z/Y oder VFR
      Notiz : array of string;
      LOAs : string;
      Belegt : boolean;
      Speed_aktuell : string[5];
      Speed_freigabe : string[5];
      WayPoint_aktuell : Waypoints_;
      WayPoint_Freigabe : Waypoints_  ;
      Hinzufuegen_Liste : boolean;
      Route : string;
      AirportIndex : integer;
      Aircraft_lat : extended;
      Aircraft_lon : extended;
      Aircraft_groundspeed : integer;
      Shortcut_Time : string;
      end;
Das Haupt-Record was ich brauche ist das Strips Record.

Ist es möglich in PHP das ganze genauso aufzubauen? oder gibt es da Einschränkungen?

Des Weiteren lege ich die Größe einiger Records dynamisch fest mittels SetLength(xyz,blabla);. Geht auch das mit PHP?


Vielen Dank schonmal!

LG Marco!

P.S.: Ich hoffe ich habe diesmal in die richtige Kategorie gepostet?
SimStar001 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.04.2009, 11:56  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Benutze assoziative Arrays, z.B
PHP-Code:
$LoA = array(
      
destination => 'xxx',
      
routing => 'yyy',
      
FlightLevel => '...',
      
Handoff => '...',
      
Receiving_Sektor => '...'

__________________
Gruss
L

Geändert von lazydog (08.04.2009 um 12:01 Uhr).
lazydog ist offline  
Alt 08.04.2009, 12:06  
Benutzer
 
Registriert seit: 16.03.2009
Beiträge: 92
SimStar001 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok,

das hatte ich mir schon fast geacht mit den assoziativen Arrays.
Wenn ich mich da an dein Beispiel halte, wie schauts dann weiter aus mit dem eigentlichen Array?
PHP-Code:
$LoA = array(
      
destination => 'xxx';
      
routing => 'yyy';
      
FlightLevel => '...';
      
Handoff => '...';
      
Receiving_Sektor => '...';

Bsp.:
PHP-Code:
$Strips = array (
      
CallSign => 'xxx';
      
ICAO_Departure => 'xxx';
      
ICAO_Arrival => 'xxx';
      
SID => 'xxx';
      
Bahn => 'xxx';
      ...
      ...
      
$LoA
Wäre das so korrekt oder verstehe ich das gerade falsch?

Achso und was bedeutet das "=>"?
SimStar001 ist offline  
Alt 08.04.2009, 12:17  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von SimStar001 Beitrag anzeigen
Achso und was bedeutet das "=>"?
Was links vom => steht ist der Key, und rechts der eigentliche Wert. Das ist schon alles.

PS
Ich hatte noch nen Fehler drin, innerhalb des Arrays werden die Elemente durch Kommas getrennt
__________________
Gruss
L
lazydog ist offline  
Alt 08.04.2009, 12:41  
Benutzer
 
Registriert seit: 16.03.2009
Beiträge: 92
SimStar001 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, also kan ich mir so mein Array definieren:

PHP-Code:
$LoAs array(
    
destination routing, ...); 
und dann später so belegen:


PHP-Code:
for (i==0;$bestimmterWert;i++) {
    
$LoAs[0,i] = "EDDF";
    .....

SimStar001 ist offline  
Alt 08.04.2009, 12:56  
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 450
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard

Pascal, richtig? // Edit: Nein! Delphi... Naja fast das selbe.

In PHP musst du Variablen nicht vorher definieren, du kannst sie einfach "aus dem Nichts" zuweisen. Assoziative Arrays sind dabei ein Typ, den es schon gibt, der beliebige Eigenschaften hat.

Ich denke Klassen würden in diesem Fall eine bessere 1:1 Übersetzung geben, sind aber dann Pascal Stil in PHP, so soll das eigentlich nicht sein.

PHP5, PHP4 wäre auch möglich:
PHP-Code:
class DeinTyp
{
    public 
$deineEigenschaft 'standard Wert';
    public 
$eineEigenschaftOhneStandardWert;
    
//...
}

$deinRecord = new DeinTyp;
$deinRecord->deineEigenschaft 'ein anderer Wert'
Das könntest du auch mit richtiger Objektorientierung weiterführen, was nur zu empfehlen ist. Klassen können auch Methoden (Funktionen) besitzten...

Jetzt fehlt noch ein "Lerne Grundlagen"-Link, den ich grade nicht zu Hand habe, schau mal im Forum, wenn nicht gleich ein netter Mod vorbeikommt.
__________________

Geändert von Phoscur (08.04.2009 um 13:01 Uhr).
Phoscur ist offline  
Alt 08.04.2009, 12:57  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

und bitte die hochkommas um die werte nicht vergessen!

PHP-Code:
$var = array ('key1' => 'value1',
                    
'key2' => $someVar); 
Das wie du belegen willst mit 0,i klappt nicht!
was genau willst du denn wie belegen ?
robo47 ist offline  
Alt 08.04.2009, 13:00  
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 450
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard

// Aut zitieren statt editieren geklickt...
__________________
Phoscur ist offline  
Alt 08.04.2009, 13:11  
Benutzer
 
Registriert seit: 16.03.2009
Beiträge: 92
SimStar001 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also am Beispiel von LoAs:

ich habe eine Text-Datei, in der meine Werte stehen, die ich einlesen will:
In Pascal sieht der record ja so aus:
Code:
type LoA = record
      destination : string;
      routing : string;
      FlightLevel : string;
      Handoff : string;
      Receiving_Sektor : string;
      end;
der Inhalt der Datei zum Beispiel so:

Code:
LOAs
EDFH}all routings}max FL180}prior to the sector border}EDGG_W_CTR}
EDDF}ROLIS}at FL120} at ROLIS}10nm inbound ROLIS}EDDF_APP (EDGG_E_CTR)}
EBBR}(U)T880}at FL220}prior to the FIR-border}EBBU(_E)_CTR}
EBBR}T855}at FL180}prior to the FIR-border}EBBU(_E)_CTR}
EBBR}UM170}at FL160}prior to the FIR-border}EBBU(_E)_CTR}
EBBR}Y283}at FL140}prior to the FIR-border}EBBU(_E)_CTR}
EBCI}(U)T880}at FL220}prior to the FIR-border}EBBU(_E)_CTR}
EHAM}NORKU}at FL260}2 min prior to NORKU}EHAA_E_CTR (EHAA_W_CTR)}
EHAM}RKN}at FL180}2 min prior to RKN}EHAA_E_CTR (EHAA_W_CTR)}
EHBD}LMA}FL80}prior to the FIR border}EHAA_E_CTR (EHAA_W_CTR)}
EHBK}RKN}FL180}prior to the FIR border}EHAA_E_CTR (EHAA_W_CTR)}
EHEH}LMA}at FL140}prior to the FIR border}EHAA_E_CTR (EHAA_W_CTR)}
EHEH}VELNI}at FL120}prior to the FIR border}EHAA_E_CTR (EHAA_W_CTR)}
EHGG}RKN}at FL220}prior to the FIR border}EHAA_E_CTR (EHAA_W_CTR)}
EHRD}RKN}at FL240}prior to the FIR border}EHAA_E_CTR (EHAA_W_CTR)}
EDDV}OSN}maximum FL190}prior to the FIR border}EDWW_S/W_CTR}
EDDH}all routings}maximum FL290}prior to the FIR border}EDWW_S/W_CTR}

Diese Sachen sollen nun halt in LoAs eingelesen werden.
Fast genauso soll es dann auch mit den Anderen Records / Arrays geschehen.

Ich hoffe das ist einigermaßen verständlich?
SimStar001 ist offline  
Alt 08.04.2009, 13:20  
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 450
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard

Und machst du dann noch irgendwas tolles damit? Dass es sich lohnen könnte Objekte zu benutzen... Ansonsten nimmst du stinknormale Arrays. Und wie gesagt, eigne dir erstmal den PHP Stil an.
__________________
Phoscur ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
records wie unter pascal möglich? PHP Tipps 2004 2 18.06.2004 15:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php records, record php, records php, records in php, php record, record in php, $record php, php update record, p.h.p. records, php record type, type record php, record with php, $records php, php record lesen, php records nutzen, php länge record, php record definieren, type record in php, php record typ, was bedeutet net extend. £’000

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum