Hallo,
ich durchlaufe ein Textfile und möchte beim Zutreffen eines Ausdruckes die Zeile auswerten.
Hier ein Ausschnitt des Textes:
part "Z2004"
part "Z2005"
part "Z2006"
part "ZZ186"
part "J15",1
part "J24",1
part "J100",1
part "J103",1
part "J108",1
Ich möchte nur die jenigen Zeilen die nicht mit ",1" enden.
Das Ganze habe ich so versucht:
if(Regex.IsMatch(line_pdw,"(part)[\" \"][\"][a-zA-Z0-9]+[\"][^,]")){
// do something
}
Der letzte Abschnitt, also [^,] wirkt irgendiwe nicht, keine Ahnung warum.
Kann mir jemand von euch weiter helfen?
Danke
Gruß
Andreas
Hallo jetzt habe ich doch noch eine Frage...
ich durchlaufe die Knoten Items, der Inhalt dieser Knoten steck in FieldValues/fieldValue.
So durchlaufe ich die items:
XmlDocument document = new XmlDocument();
document.Load(outlinePfad + "\\BomOutput.xml");
XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable);
manager.AddNamespace("bom", "http://schemas.unicam.com/unicam/bom/bomtool");
XmlNodeList nodes = document.SelectNodes("//bom:items/bom:item", manager);
foreach (XmlNode node in nodes)
{
MessageBox.Show(node.Attributes["bom:reference"].Value);
}
Wie komme ich in der Schleife jetzt an die Values?
hi inflames2k,
perfekt, das funzt ja schon.
Vielen Dank, da kann ich jetzt drauf aufbauen und vorallem verstehen 😃
Vielen Dank
Gruß
Andreas
HI LaTino,
sorry, habe jetzt mal einen kleinen Ausschnitt extrahiert:
<?xml version="1.0" encoding="utf-8"?>
<bom:bomResults xmlns:bom="http://schemas.unicam.com/unicam/bom/bomtool">
<bom:mergeOptions>
<bom:partNotInBom handling="replace" enabled="true">
NOT_BOM
</bom:partNotInBom>
</bom:mergeOptions>
<bom:rules />
<bom:filteredItems />
<bom:inputRows />
<bom:items>
<bom:item bom:inputRow="3" bom:reference="B2">
<bom:fieldValues>
<bom:fieldValue bom:value="B2" bom:field="1" />
<bom:fieldValue bom:value="10884981" bom:field="2" />
<bom:fieldValue bom:value="L731-1100A01" bom:field="3" />
<bom:fieldValue bom:value="QFN-56/8x8" bom:field="4" />
</bom:fieldValues>
</bom:item>
<bom:item bom:inputRow="4" bom:reference="N1">
<bom:fieldValues><bom:fieldValue bom:value="N1" bom:field="1" />
<bom:fieldValue bom:value="10302852" bom:field="2" />
<bom:fieldValue bom:value="LAL0019" bom:field="3" />
<bom:fieldValue bom:value="SC-70-6" bom:field="4" />
</bom:fieldValues>
</bom:item>
</bom:items>
<bom:fields>
<bom:field id="1" bom:name="Reference" bom:type="job"/>
<bom:field id="2" bom:name="Part Number" bom:type="job"/>
<bom:field id="3" bom:name="Comment" bom:type="job"/>
<bom:field id="4" bom:name="Asm. shape" bom:type="job"/>
</bom:fields>
</bom:bomResults>
Gruß
Andreas
verwendetes Datenbanksystem: XML
Hallo zusammen,
verushce mich das erste mal an XML und scheitere an der Struktur.
Normlaerweise ist die Struktur ja:
<Buch>
<Autor>
Meier
</Autor>
<Titel>
meinBuch
</Titel>
</Buch>
Das XML das ich lesen muss sieht so aus:
<?xml version="1.0" encoding="UTF-8"?>
-<bom:bomResults xmlns:bom="http://schemas.bla.com/bla/bom/bomtool">
-<bom:mergeOptions>
<bom:partNotInBom enabled="true" handling="replace">NOT_BOM</bom:partNotInBom>
</bom:mergeOptions>
<bom:rules/>
<bom:filteredItems/>
<bom:inputRows/>
-<bom:items>
-<bom:item bom:reference="V353" bom:inputRow="3">
-<bom:fieldValues>
<bom:fieldValue bom:field="1" bom:value="V353"/>
<bom:fieldValue bom:field="2" bom:value="101172350"/>
<bom:fieldValue bom:field="3" bom:value="DB015"/>
<bom:fieldValue bom:field="4" bom:value="SOT-23"/>
</bom:fieldValues>
Ich habe mal etwas rumprobiert, komme aber nicht wirklich weiter, bringe keine Daten raus.
XmlDocument doc = new XmlDocument();
doc.Load(outlinePfad + "\\BomOutput.xml");
XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
manager.AddNamespace("bom","http://schemas.bla.com/bla/bom/bomtool");
query = "/bom:items/bom:item/bom:item/bom:fieldValues/bom:fieldValue";
XmlNodeList nodes = doc.SelectNodes(query, manager);
foreach (XmlNode node in nodes)
{
MessageBox.Show(node.FirstChild.Value.ToString());
}
Könnt ihr mir hier weiter helfen?
Danke
gruß
Andreas
@Abt: bin mit der Arraylist auch auf die Nase gefallen, habe jetzt eine typisierte List verwendet, läuft...
@Thomas:
Danke für den Hinweis, werde ich versuchen.
Gruß
Andreas
Hallo zusammen,
hier meine Lösung, nicht schön aber geht 😃
// Die CIRCLE Abschnitte mittels REGEX rausnehmen
string test = Regex.Replace(fatf_package_data[package].ToString(),@"(CIRCLE)[(](\+|-)?\d+,(\+|-)?\d+,(\+|-)?\d+,(\+|-)?\d+\)","");
// Den Text TRACK raus nehmen
test = Regex.Replace(test.ToString(),@"(TRACK)","");
MatchCollection koordinaten_paar;
// Jetzt die X- und Y- Koordinaten mittel REGEX rausextrahieren
koordinaten_paar = Regex.Matches(test.ToString(),@"(\+|-)?\d+,(\+|-)?\d+");
ArrayList koordinaten_array = new ArrayList(koordinaten_paar);
// x und y Array löschen
x_array.Clear();
y_array.Clear();
string[] koord_cols;
foreach (var inhalt in koordinaten_array)
{
koord_cols = inhalt.ToString().Split(',');
swOut.Write(koord_cols[0] + "/" + koord_cols[1] + "...");
x_array.Add(koord_cols[0]);
y_array.Add(koord_cols[1]);
}
hab mir das Tutorial angeschaut....und Kopfweh bekommen.
Hätte jetzt mal angenommen splitte etwas das mit TRACK( anfängt du mit )) aufhört ... keine Ahnung
Werde mal rum probieren...
da ich tatsächlich keinen Schimmer habe, wie ich da ran gehen soll nicht wirklich viel..
Hallo zusammen,
ich habe strings die so aussehen:
TRACK(6(2657,4331)(-2657,4331)),TRACK(6(-2657,4331)(-2657,-4331)),CIRCLE(296,294,-1378,3150)))
Aus diesem String möchte ich die X Werte in ein Array und die Y Werte in ein Array bringen, und zwar nur dann wenn es sich um einen TRACK handelt.
Ich tippe mal, dass es mit einem Regex gehen wird, nur habe ich viel zu wenig Ahnung von Regex.
Kann mir jemand weiterhelfen.
Danke
Gruß
Andreas