Warnung: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant VB_FRAMEWORK - assumed 'VB_FRAMEWORK' (this will throw an Error in a future version of PHP) in ..../includes/functions.php (Zeile 8101)

Warnung: Use of undefined constant archive_postsperpage - assumed 'archive_postsperpage' (this will throw an Error in a future version of PHP) in ..../archive/index.php (Zeile 456)
Wie herausfinden, wo man eine doppelte Scenery hat [Archiv] - X-Plane Schweiz

PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie herausfinden, wo man eine doppelte Scenery hat



sirarokh
10.09.2007, 21:22
Ich habe heute mit dem Problem gekämpft, dass bei mir einige Scenery doppelt vorhanden ist.

Das ist generell kein großes Problem, wenn man nur einzelne Flughäfen installiert. Sobald man aber Pakete installiert, die viele, über die Welt verstreute Flughäfen enthalten (z.B. NYEXPRO) wird es sehr schwer, festzustellen, ob ein einzelner Flughafen doppelt vorhanden ist.

Anfangs fand ich einzelne Flughäfen, die doppelt vorhanden waren und daher ineinander steckten. Mit Hilfe des Overlay Editors ist ein solches Problem schnell zu beheben. Noch einfacher ist es, einfach eine der beiden *.DSF-Dateien umzubenennen.
Mit mehreren installierten Multi-Airport-Paketen wurde es aber schnell sehr unübersichtlich und es musste eine andere Lösung her, da man nicht einfach jeden Airport aus einem Paket mit mehreren hundert Flughäfen anschauen kann.
Nach ein wenig Herumprobiererei habe ich eine Möglichkeit gefunden, mit Hilfe von OpenOffice Calc (Excel) alle doppelten *.DSF-Dateien ausfindig zu machen und darzustellen. Meist sind es nicht viele Konflikte, wodurch sich diese sehr einfach händlisch lösen lassen.

Hier eine Anleitung um alle doppelten DSF-Dateien zu finden und darzustellen. Den ersten Schritt kann ich nur für Linux erklären, er dürfte jedoch für Windows ähnlich funktionieren. Ebenso kann ich nur eine Erklärung für Openoffice Calc geben, Microsoft Office Excel sollte das aber ähnlich können.

1. Alle DSF-Dateien auflisten.
Im X-Plane-Verzeichnis folgenden Konsolenbefehl ausführen:

find Custom\ Scenery -name *.dsf >> dsf.txt
Jetzt sind alle DSF-Dateien in der Datei dsf.txt im X-Plane Hauptverzeichnis gespeichert.

2. Die Suchergebnisse in Calc/Excel aufbereiten
Diese Datei jetzt in die linke obere Ecke einer neuen, leeren Tabelle von Calc ziehen. Daraufhin öffnet sich ein Dialog, der nach der Formatierung der zu importierenden Daten fragt. Wir wollen nach den Ordnertrennzeichen (/ unter Linux, \ unter Windows) trennen. Außerdem stören die ".dsf" am Ende, also wollen wir auch nach "." trennen. Also machen wir unter "Trennoptionen" ein Häkchen bei "Andere" und geben im entsprechenden Eingabefeld "/,." ein. Nach einem Druck auf OK sollte jetzt eine große Liste von Daten erschienen sein.
Die Spalten mit "Custom Scenery", "Earth nav data", "dsf" und den Ordnernamen (z.B. "+60+000") sind nicht weiter interessant und können gelöscht werden (Rechtsklick auf die Spaltenüberschrift (Buchstabe) -> "Spalten löschen").
Jetzt haben wir noch zwei Spalten A und B mit den Namen der Addons und den Koordinaten (Dateinamen der DSF-Dateien).

3. Die Namen sortieren
Wir markieren beide Spalten und sortieren sie nach der zweiten Spalte, so dass Spalten mit den selben Koordinaten untereinander stehen.
Dazu markieren wir beide Spalten und wählen oben >> Daten -> Sortieren. Im folgenden Dialog sortieren wir natürlich nach der zweiten Spalte.

4. Paare suchen.
Nun gehen wir in die dritte Spalte und lassen Calc für uns nach Paaren suchen. Wir geben dafür ein:
"Falls die Spalte links neben mir gleich der darunterliegenden ist, gebe einen der entsprechenden Ordnernamen aus. Ansonsten gebe 0 aus"
Auf Calc-speak heißt das in der dritten Spalte: "=WENN(B1=B2;A1;0)"
und in der vierten Spalte: "=WENN(B1=B2;A2;0)".
Nun verlängern wir die beiden Spalten, so dass jeder Eintrag in Spalte A und B einen entsprechenden Eintrag in C und D hat. (Zelle anklicken und die rechte untere Ecke ganz nach unten ziehen, bis das Ende der Tabelle erreicht ist)

Sollte jetzt eine DSF-Datei doppelt vorhanden sein, so tauchen in Spalte 3 und 4 die entsprechenden Namen der Scenery auf, zu der die beiden Dateien gehören und man kann leicht entscheiden, ob man eine der beiden vielleicht umbenennen möchte, um Konflikte zu vermeiden.

Bei mir sind die meisten Konflikte übrigens gutartig, also beispielsweise ein Flughafen und die Umgebung um den Flughafen, die ja gerne nebeneinander existieren dürfen.

PS. Was hat das eigentlich noch mit Flugsimulation zu tun? Ich bin doch eigentlich ein Hobbypilot und kein Simulationsadministrator.

sirarokh
11.09.2007, 09:24
Das ist keine schöne Vorgehensweise. Ich glaube, ich schreibe ein kleines Programm dafür. Die Programmiererei macht mir einfach Spaß :)

sirarokh
11.09.2007, 13:32
Das Programm ist fertig. Kopiert es einfach in euer X-Plane-Hauptvereichnis und doppelklickt darauf. Es erstellt daraufhin eine Datei "dsfDouble.txt", in der alle Konflikte aufgelistet sind.
Außerdem schreibt es dazu noch alle Befehle, die nötig wären um diese Dateien umzubenennen. Indem man die Kommentarzeichen in der Datei entfernt, werden diese Befehle ausführbar. Sobald man sich um alle Konflikte gekümmert hat, führt man die Datei aus und alle doppelten Einträge werden entsprechend umbenannt.
Das steht aber auch noch einmal etwas genauer in der Datei.

Leider habe ich bisher keinen entsprechenden Windows-Befehl gefunden, um nach Dateien zu suchen, weswegen ich noch keine Windows-Version kompilieren konnte. Ich suche aber noch danach.

Linux-Versionen: (updated!)
englische Version (http://www.meinstudi.de/basti/zeugs/dsfDouble/dsfDouble)
deutsche Version (http://www.meinstudi.de/basti/zeugs/dsfDouble/dsfDouble_de)

Windows-Versionen: (ungetestet!)
englische Version (http://www.meinstudi.de/basti/zeugs/dsfDouble/dsfDouble.exe)
deutsche Version (http://www.meinstudi.de/basti/zeugs/dsfDouble/dsfDouble_de.exe)

Bei den Windows-Versionen wird eine *.bat-Datei erstellt. Diese kann durch >> Rechtsklick -> Bearbeiten angesehen werden.

sirarokh
11.09.2007, 15:56
Ich habe eben all meine Daten durchgearbeitet und kann euch folgenden Tip geben: Bevor ihr das Programm ausführt, kopiert Addons wie CORINE Europe, German Landmarks, USA Midwestern Forests oder das Village Overlay vorher aus den Custom Sceneries heraus.
Das hat bei mir die Anzahl der Konflikte von 550 auf 130 gesenkt.
Davon waren ungefähr 70 wirklich relevant - und das natürlich auch nur wegen Massenaddons wie NYEXPRO oder der FS9-Szenerie.
Ich finde das Programm ziemlich toll :)

sirarokh
11.09.2007, 18:59
Ich habe jetzt die entsprechenden Befehle für die Windows-Shell gefunden. Sie sind zwar bei weitem nicht so komfortabel, aber sie werden auch funktionieren.

Das Problem: Ich benutze zwei Systembefehle:
"find" und "mv"
Mit dem Befehl "find" kann man mit Linux nach Dateien suchen. Einen solchen Befehl gibt es für Windows nicht! Immerhin kann man mit "dir /s /b /a:a" alle Dateien auflisten lassen, die existieren. Zusammen mit der Windows-Version von "find", die Texte durchsucht, funktioniert er dann genauso wie die Linux-Variante:
"find *.dsf" = "dir /s /b /a:a | find ".dsf""
Das zeigt mal wieder, warum ich Linux mag...
"mv" heißt bei Windows "move" und funktioniert beinahe genauso (leicht anderer Syntax bei der Handhabung von Leerzeichen, aber das ist kein großes Problem).
Jetzt muss ich nur noch eine Entwicklungsumgebung herunterladen, dann kann ich die Windows-Versionen erstellen.

Nebenbei: Könnte man den Thread vielleicht zu X-Plane-tools verschieben?

Cedric Loup
13.09.2007, 21:55
Hallo Bastian

Finde es toll, dass Dir die Programiererei solch einen Spass macht. ;)
Ich wüschte ich könnte dies auch.
Habe mal versucht mich in der Perl Programiererei zu betätigen, aber eben wie sagt man: Aller Anfang ist leicht, verstehen ist schwer oder war das anderst? ;D

Nun wenn ich doch bloss die Perl Programiererei verstehen täte, so hätte ich längst die neue Download Sektion in meine 2 Foren mit eingebunden, dass man sich bloss im Forum registrieren muss um Daten zu downloaden.

Tja in dem Fall.

Habe den Thread in X-Plane Tool verschoben.

Gruss Cedric

sirarokh
14.09.2007, 19:49
C habe ich mir auch nicht selbst beigebracht, sondern zwei Vorlesungen besucht. Zugegebenermaßen habe ich aber als Zweitbester abgeschnitten :)
Ich habe mir allerdings derweil PHP selbst beigebracht und enorm viel Spaß daran gehabt. PHP, C (aber nicht C++) und wahrscheinlich auch Perl kann man sich theoretisch selbst beibringen, ich halte es aber für äußerst schwierig, wenn man vorher noch nie programmiert hat. Bei C halte ich es aber für sehr gut möglich. Und auch wenn meine Programme hier immer in C++ geschrieben sind, so wären sie auch genauso (mit weniger Aufwand) in C möglich gewesen.

Davon abgesehen sind diese Foren meistens ziemlich große Softwareprojekte, bei denen ich auch mit meinen lausigen zwei Vorlesungen praktisch nichts verstehe.
Trotzdem habe ich genau aus dem Grund meine Webseite von Grund auf (bis auf das Forum) selbst von Hand geschrieben. Das ist aber eine wahnsinnige Arbeit und hat mehrere Wochen in Anspruch genommen - aber ich habe viel gelernt. In meiner letzten Revision (die vierte) habe ich die komplette Webseite auf XML-Datenbanken umgestellt. Dabei sind allerdings manche Strukturen für mich -- obwohl selbst geschrieben -- zu komplex geworden, weswegen das wohl die Grenze darstellt, wie weit ich momentan mit der Informatik komme.

Die kleinen Programme hier sind dagegen relativ einfach.

Das interessante ist aber, dass den guten Programmierer nicht ausmacht, wie gut er seine Sprache beherrscht, sondern wie kreativ er damit umgehen kann. Ich kann relativ wenig C++, aber ich glaube damit ziemlich kreativ umzugehen :)

Den Anfang finde ich übrigens schwerer als alles andere. Das schwierigste ist, das grundsätzliche Konzept zu begreifen -- der Rest ist dann vergleichsweise einfach.