Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  Quelltext verstehen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO
  
Wichtige Änderung beim Bankdatenimport: Neues CAMT-Format ersetzt MT940, eine Pressemitteilung
Autor Thema:  Quelltext verstehen (377 mal gelesen)
Pilou
Mitglied



Sehen Sie sich das Profil von Pilou an!   Senden Sie eine Private Message an Pilou  Schreiben Sie einen Gästebucheintrag für Pilou

Beiträge: 12
Registriert: 05.06.2008

Wildfire ProE 3.0

erstellt am: 09. Jul. 2008 12:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
für meine Studienarbeit muss ich zu allererst den Quelltext meines Vorgängers verstehen (und ich kenn mich mit programmieren so gut wie gar nicht aus)
Die "einfacheren" Methoden hab ich mittlerweile verstanden. Aber den Grossteil eben noch nicht...
Im Moment hänge ich an folgendem Problem:
Um Werte aus einer Datei auf die Parameter eines Modells zu übertragen hat er sich eine Methode "retrieveParam" geschrieben. Diese ruft dann auch noch eine Klasse "pfcuParamValue" auf die er sich auch selbst geschrieben hat.
Den Rest glaube ich verstanden zu haben. In der Main-Methode ruft er eine Methode "runProE" auf und die arbeitet dann mit "retrieveParam".
Meine Bitte an euch wäre jetzt mir in möglichst einfachen Worten zu erklären was mein Vorgänger in den beiden Quelltexten die ich unten anhängen werde getrieben hat.

Vielen Dank schonmal im Voraus.

----------------------------------------------------------------------
// Funktion um Paramter einzulesen und zu setzen

    public static void retrieveParam (ParameterOwner p_owner, String wd, String file) throws com.ptc.cipjava.jxthrowable
    {
String prop_value;
String propsfile = wd+"\\"+file;
ParamValue pv;
Parameter p;

Properties props = new Properties();

// Laden des Paramterfiles
try {
props.load (new BufferedInputStream( new FileInputStream (propsfile)));
}

catch (IOException e)
{
    System.out.println("Parameterfile "+wd+"\\"+file+" nicht vorhanden");
}

// Einlesen des Paramterfiles und Setzen der Parameter
Enumeration e = props.propertyNames();

for (String prop_name = (String)e.nextElement(); e.hasMoreElements();prop_name = (String)e.nextElement()) {
prop_value = props.getProperty(prop_name);
pv = pfcuParamValue.createParamValueFromString(prop_value);
p = p_owner.GetParam(prop_name);
if (p == null) // GetParam returns null if it can't find the param.
{
p_owner.CreateParam(prop_name, pv);
}
else
{
p.SetValue(pv);
}
}
  }

----------------------------------------------------------------------

class pfcuParamValue
{
public static ParamValue createParamValueFromString(String s) throws com.ptc.cipjava.jxthrowable
{
try {
int i = Integer.valueOf (s).intValue();
return pfcModelItem.CreateIntParamValue(i);
}
catch (NumberFormatException e)
{
//string is not an int, try double
try
{
double d = Double.valueOf (s).doubleValue();
return pfcModelItem.CreateDoubleParamValue(d);
}
catch (NumberFormatException e2)
{
//string is not int/double, check if Boolean
if (s.equalsIgnoreCase("Y") | | s.equalsIgnoreCase ("true"))
{
return pfcModelItem.CreateBoolParamValue (true);
}
else if (s.equalsIgnoreCase("N") | | s.equalsIgnoreCase ("false"))
{
return pfcModelItem.CreateBoolParamValue (false);
}
else
{
return pfcModelItem.CreateStringParamValue(s);
}
}
}
}
}

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mholz
Mitglied
CAx Admin


Sehen Sie sich das Profil von mholz an!   Senden Sie eine Private Message an mholz  Schreiben Sie einen Gästebucheintrag für mholz

Beiträge: 198
Registriert: 27.10.2000

erstellt am: 21. Jul. 2008 00:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Pilou 10 Unities + Antwort hilfreich


flowchart.jpg

 
Hallo Pilou,

ich versuche es mal zu erklären was der Quelltext macht.

Die Methode retrieveParam wird aufgerufen mit den Optionen ParameterOwner (da steckt das Model drin in dem die Parameter gesetzt werden sollen) und zwei Strings die zusammen den Pfad und die Datei beschreiben in der die Parameter stehen.
In der Datei stehen die Parameter in der Form:

Code:
$PARAMETERNAME=$PARAMETERWERT

In der Methode werden die Parameter in ein Properties Objekt geladen (erweiterte HashMap, die Werte in der Form: Name, Wert speichert).
Das Properties Objekt wird in der For Schleife durchgangen und für alle $PARAMETERNAMEN werden die $PARAMETERWERTE geholt. Es wird mit der Methode pfcuParamValue der ParameterValue erzeugt (da steckt der Typ des Parameters (String,Integer,usw.) und der Wert drin). Dann versucht er sich den Parameter aus dem Model (ParameterOwner) zu holen, gibt es den Parameter nicht dann erzeugt er den Parameter, wenn es den Parameter gibt dann wird der Wert gesetzt.

Die Methode createParamValue erzeugt den ParameterValue. Dazu wird ´versucht den PARAMETERWERT als Integer auszulesen, geht das schief wird versucht ein Double auszulesen, dann ein Boolscher Wert, geht das auch schief wird ein String Parameter erzeugt.

Hänge noch ein Flussdiagramm an.

Gruss,
Michael

------------------
„Es gibt drei Möglichkeiten, eine Firma zu ruinieren:
mit Frauen, das ist das Angenehmste;
mit Spielen, das ist das Schnellste;
mit Computern, das ist das Sicherste.

Oswald Dreyer-Eimbcke (*1923), dt. Kaufmann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz