Laden...

Profil von allgaeu73

myCSharp.de - Member Mitglied seit

Alle Beiträge

24.03.2016 - 09:55 Uhr

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

10.03.2016 - 09:11 Uhr

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?

10.03.2016 - 08:59 Uhr

hi inflames2k,
perfekt, das funzt ja schon.
Vielen Dank, da kann ich jetzt drauf aufbauen und vorallem verstehen 😃

Vielen Dank

Gruß
Andreas

10.03.2016 - 08:54 Uhr

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

10.03.2016 - 08:35 Uhr

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

07.03.2016 - 07:01 Uhr

@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

04.03.2016 - 06:59 Uhr

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]);
				    }

03.03.2016 - 09:18 Uhr

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...

03.03.2016 - 08:40 Uhr

da ich tatsächlich keinen Schimmer habe, wie ich da ran gehen soll nicht wirklich viel..

03.03.2016 - 08:27 Uhr

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

26.02.2016 - 09:26 Uhr

Hallo Coffeebean,
ich benötige jede Spalte der Zeile.
Gruß
Andreas

26.02.2016 - 09:21 Uhr

Hallo zusammen,
ich habe jetzt schon ein paar Dinge gelesen, komme aber irgendwie nicht weiter.
Ich lese ein File aus, in diesem File interessiert mich ein bestimmter Block.
In diesem Block möchte ich die Zeilen Splitten, diese Zeilen sind Comma separated mit Text- Qualifiers, also wie CSV eben, aber eben nur der Block innerhalb dieses Files.

Hier eine Beispielzeile:
829,ME10,"10044556","LABEL_20X6,6",513780,217717,1800,T;

Wie kann ich das Komfortabel lösen, Split ist hier ja nicht geeignet.

Danke für eure Hilfe

Gruß
Andreas

Hallo zusammen,
ich möchte beim auslesen einer Datei nur Zeilen lesen deren erste Spalte mit einer bestimmten Buchstabenfolge beginnt.
Diese Buchstabenfolge habe ich als key in einer Hashtable stehen.

Jetzt kenne ich die Methode StartWith...

Also irgendwie so...

if(string.StartWith(Key in Hashtable){
tu etwas...
}

Wie kann ich das elegant lösen? Komme nicht drauf.
Wäre um Hilfe sehr dankbar 😃

Gruß
Andreas

@spyke.
Du hattest vollkommen recht, nur woher hast du das gewusst?? 😃
in den Artikeln stand tatsächlich teilweise der Wert NULL drin, das scheint es auch gewesen zu sein.
Habe den Workaround rückgängig gemacht und es läuft

hmmm ok, ich werde versuchen das Ganze nochmal im Debugger nachzuvollziehen.
Ich benutze CSharpDevelop und da komm ich irgendwie mit dem Debugger nicht klar.

Wenn ich auf beiden Seiten (Füllen der Hashtable, und Vergleich mit Variable)
das Komma gegen Punkt tausche funktioniert alles 😃

Hashtable mit Werten aus der Datenbank füllen:


                			result = result.Replace(",",".");
				            shapes_in_db.Add(result, "");

Vor Abfrage der Keys:


                	shape = shape.Replace(",",".");
                	if(shapes_in_db.ContainsKey(shape))

Ein unschöner Workaround, aber tut vorerst mal.

Gruß
Andreas

Hallo zusammen,
danke für eure Antworten.
Ich konnte das Problem jetzt eingrenzen, oder habe zumindest eine Vermutung.
Was die Fehlermeldung damit zu tun hat ist mir ein Rätsel.

Es hat wohl doch was mit dem Füllen der Hashtable zu tun.
Ich vermute dass wenn ein KOMMA im String ist, das dann eine Trennung zwischen key und value oder ähnliches interpretiert wird. Das könnte dann zu einem Nullwert führen.

Der Absturz passiert bei Werten mit einem Komma drin, ändere ich das Komma gegen Punkt und zwar in beiden Quellen, läuft das Script durch.

So fülle ich die Hashtable, ich benutze sie ausschließlich zur Suche eines Keys, also ohne setzen eines Wertes:


			 shapes_in_db.Add(result, "");

In der Variable result stehen jetzt Werte mit KOMMA, und hier denke ich ist die Ursache des Problems.

Was sagt ihr, kann das sein?

Wie kann ich das Problem umgehen?

Danke für eure Meinung shcon mal

Gruß
Andreas

Hallo zusammen,
ich bin ziemlich neu in C# Sharp unterwegs und habe ein Problem auf dessen Lösung ich nicht komme.
Ich fülle eine Hashtable mit Textwerten bzw. strings.
Bei der Abfrage ob ein key vorhanden ist (ContainsKey) stürzt mir das Programm ab mit diesem Fehler (siehe Bild "unbehandelte Ausnahme").
Das Ganze passiert wenn der Key der Hashtable diesen Wert enthält:
WDFN8_P0,65_BOTTOM
Ich dachte erst es sei das Komma, aber andere Keys haben teilweise auch ein Komma.
Codeabschnitt:


			while ((line = file.ReadLine()) != null)
            {
                		//	debug.AppendText(line);

                shapes_in_cad_cols = line.Split('=');
                if (shapes_in_cad_cols[0] == "FIL")
                {
                	string shape = shapes_in_cad_cols[1];
                	
                	shape = shape.Replace("\"","").ToString();
                	if(shapes_in_db.ContainsKey(shape))
                		{
                		list_shapes_in_cad.Rows.Add(shape);
						list_shapes_in_cad[0, zeilenzaehler].Style.BackColor = Color.FromArgb(230, 255, 230);         		
                		} else {
                		list_shapes_in_cad.Rows.Add(shape);
						list_shapes_in_cad[0, zeilenzaehler].Style.BackColor = Color.FromArgb(255, 230, 230);
						shapes_not_checked.Rows.Add(shape,artikel[shape].ToString());
						shapes_not_checked[0, zeilenzaehler_notchecked].Style.BackColor = Color.FromArgb(255, 230, 230);
						shapes_not_checked[1, zeilenzaehler_notchecked].Style.BackColor = Color.FromArgb(255, 230, 230);
						zeilenzaehler_notchecked++;
                		}
                	zeilenzaehler++;	
                }
            }


Könnt ihr mir hier weiter helfen?

Wäre super

Danke

Gruß
Andreas