Na ja, es ist so, dass vorher und nachher ja code kommt, der funktioniert. da es eine tabelle ist, kann ich es also auch nicht einfach woanders hinpacken,da ja sonst die inhalte woanders sind.
ich habe in eine aspx Seite ein anthem panel eingebaut. Funktioniert auch prima, allerdings möchte ich eine Sache ausschliessen. Im Moment ist es so:
<anthem:Panel ID="abc" runat="server" AddCallBack="true" AutoUpdateAfterCallBack="true">
Hier ist eine Tabelle, was auch prima geht. Allerdings würde ich gern eine Sache ausklammern, da sie absolut nicht funktionieren will. Das ist der Code, der ausgeklammer werden soll:
....
<TD>
<asp:LinkButton id="LB_Test" runat="server" Text="import"></asp:LinkButton>
</TD>
....
</anthem:Panel>
Geht es denn jetzt, innerhalb des anthem panel tags eine sache auszuklammern? Die Sache soll also dann OHNE Anthem laufen, der Rest mit.
hi, und wie würde ich das ganze aus einer cs datei machen, wenn ich request und response hab? wohlgemerkt, es ist keine codebehind datei der aspx. es ist eine völlig andre cs datei, die aber eben response und request hat.
hallo, kann ich irgendwie rausbekommen, woher mein request kam? ich möchte rausfinden, ob ein request an eine seite von der selben seite ausging. irgendwie im request objekt?
ich möchte mein Konsolenprogramm unter bestimmten Umständen beenden. Da aber Application.Exit(); an dieser Stelle nicht funktioniert, hier also die Frage, wie man es aus der Konsole beenden kann?
hallo, also ich hab mal nen breakpoint gesetzt und ic = <nicht definierter Wert>. wie kann denn das sein? ich kann doch jedem object, auch meinen eigenen den wert null zuweisen, oder? selbst wenn ich explizit schreibe
ic = null;
kommt wieder ic = <nicht definierter Wert>? ist das ein bug oder ein feature? muss die klasse/das interface von dem ic ist, irgendwie speziell sein?
hallo, wie überprüfe ich denn mit c#, ob eine wert null ist? ich habe sowas:
//das hier gibt mir null zurueck
I_Checker ic = CheckFactory.getChecker("datjghe");
//aber das wird nicht ausgefuehrt
if(ic == null)
{
Application.Exit();
}
//er macht hier weiter....
das muss doch irgendwie gehen? wenn ichs mit nem string mache und den auf null setze, gehts ja auch mit ==. habs auch mit equals probiert, geht ncht. ich bin mir aber sicher, dass der wert null ist, da ich nämlich eine nullrefererenceexception bekommen, wenn ich vor dem if darauf zugreifen will. gibts da noch andre möglichkeiten?
hi, also wenn ich das hier ausführe, bekomme ich genau das, was zu der jeweiligen spalte gehört und was dazwischen soll.
Regex rx = new Regex("(?<n>\\d+)((?<f>[a-zA-Z])\"(?<a>([^\"]|\"\")*)\")*|\"(?<s>([^\"]|\"\")*)\"",
RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
string text = "1A\"7\"N\"00000\" \".\" 2A\"-1,5\" \"\"\"\" 3N\"0\" \"\"\"\" 4E\"3\" ";
Match m = rx.Match(text);
while (m.Success)
{
Group g = m.Groups[0];
int groupIndex = g.Index;
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
System.Console.WriteLine("Capture " + j + " = " + c.Value + " --> " + groupIndex);
}
m = m.NextMatch();
}
nämlich
1A"7"N"00000"
"."
2A"-1,5"
""""
3N"0"
""""
4E"3"
allerdings müsste ich das jetzt nochmals parsen, da im ersten eben nochmal das N vorkommt. aber das ist aufjeden fall erstmal alles nach spalten getrennt. ich habe j auch meine benannten gruppen (?<a> etc)....aber damit ists mir dann wieder ZU auseinander. ich müsste jetzt als nächstes sagen wir mal den ersten teil nehmen und damit folgendes anstellen:
1. hole den wert in der csv aus spalte 1 (1) --> ist sagen wir mal 10
2. addiere 7 dazu (A"7")
3. und formatiere das ganze entsprechend den angaben hinter N (N"00000")
4. dann würde ich den . (".") dahinter packen und so weiter.
raus kommt dann eben 00017. ist ja auch alles schön und gut, nur ist der string eben sowas von unterschieldich....ich komm nicht auf eine einheiltiche art und weise damit umzugehen.
ich habe da was mit match und regex noch nicht ganz geschnallt. hier erstmal mein code:
Regex rx = new Regex("(?<n>\\d+)((?<f>[a-zA-Z])\"(?<a>([^\"]|\"\")*)\")*|\"(?<s>([^\"]|\"\")*)\"",
RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
string text = "1A\"7\"N\"00000\" \".\" 2A\"-1,5\" \"\"\"\" 3N\"0\" \"\"\"\" 4E\"3\" ";
//string text = "14 \" \" 16 ";
Match m = rx.Match(text);
while (m.Success)
{
for(int i=0;i<m.Groups.Count;i++) // was muss hier hin????
{
Group g = m.Groups[i];
int groupIndex = g.Index;
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
System.Console.WriteLine("Capture " + j + " = " + c.Value + " --> " + groupIndex);
}
}
m = m.NextMatch();
}
wie kann ich jetzt zum beispiel rausbekommen wie oft ich durchlaufen muss? es nützt mir ja nix, wenn ich m.Groups.Count nehme, da das ja in diesem fall immer 5 ist. kommentiert man die eine auskommentierte zeile ein, klappts nicht mit dem durchlaufen, bzw. er läuft zuerst durch. jetzt hab ich zwar alles fein getrennt, aber so richtig passen tut das immer noch nicht...ich brauch die werte einzeln aber in der richtigen reihenfolge. der string kann eben seeeehr unterschiedlich sein. ich denke mal, man kann über den index festlegen, welche kombinationen zusammengehören und welche nicht...aber ich krieg das nicht so recht hin...
klasse, jetzt läuft das tool. ist nett :-)! jetzt noch eine frage. ich habe ja jetzt in dem toll unten groups stehen und captures. wie komm ich jetzt aber über die groups an die captures? ihr wisst, was ich meine? also sagen wir mal group 2 und alle captures...oder versteh ich da was nicht?
oh, das hatte ich nicht gesehen. also ich kann matchen....ABER ich finde erstmal nur alle strings, die nach dem hier verwendetetn schema aufgebaut sind. ich finde NICHT die einzelnen teile für die spalten, oder reden wir aneinander vorbei? also mein regex da oben findet alle strings, die so ein format enthalten, ich bekomme es aber nicht hin, auch nicht mit gruppen, die einzelnen teile rauszusuchen....
hi, also ich hab den regex, der eine zeile erkennt, aber ich muss noch splitten! das bekomm ich aber nicht hin...ich dachte nur, dass wenn ich denr egex habe, der dasd findet, dann sollte doch das splitten kein ding mehr sein, ich komm aber nicht drauf...brauch also nochmal hilfe.
hallo, die alte software macht das anders, ich solls aber mit regex machen :-). also ich habe mal einen regex zusammengebaut, der auf alle variationen, die auftreten können passt.
aber trotzdem komm ich nicht drauf, wie ich den nu splitten kann, so dass ich für jede spalte die aufrufe bekomme....noch ideen? mit dem regex sollte es doch nicht mehr so schwer sein? nur ich seh den wald vor lauter bäumen nicht mehr.
hallo und danke für die antwort. ich hatte mich nicht recht ausgedrückt. also es ist so:
ich habe im prinzip 2 dateien, einmal die csv datei, welche ich zeilenweise auslese, jede zeile mittels split am ; splitte. da kommt ein array raus, welches ich in eine arraylist packe. hat meine csv datei also zb 100 zeilen, würde ein Count über meine arrayliste den wert 100 ausgeben. ich kann also zum beispiel mit
((string[])(liste[0]))[24]
auf das 25 element der ersten zeile zugreifen. das funktioniert alles prima.
die zweite datei ist eine config datei, welche im textformat vorliegt. die daten der csv datei sollen später in eine datenbank geschrieben werden. in der config datei steht dann zum beispiel sowas wie
Column_Estate_Zip:24
was ausdrückt, dass der wert vor dem : in spalte 24 zu finden ist. das kann ich leicht aus meiner liste suchen und in die db schreiben. manchmal, steht aber eben sowas wie der komplexe string da, also eben zb 1N"00000" "." 2N"0000" "." 3N"0" "." 4N"0000". was eben ausdrückt, dass der wert für diese spalte nicht nur in spalte 24 zu finden ist, sondern sich eben über 4 spalten (arrayelemnte) in der csv erstreckt. wobei die anzahl der spalten und die aufrufe der kennzeichner pro spalte beliebig sein können. auch die punkte müssen nicht da sein!
ich muss also den string so parsen, dass ich mir die werte pro spalte hole und entsprechend der parameter (A, E oder N) bearbeite und am ende zusammensetze und ERST DANN in die db schreibe. das ist das problem, das auslesen der dateien funzt.
schwer zu erklären...konnte ich es diesmal besser beschreiben?
das problem ist, dass der string sehr komplex ist. mal noch ein beispiel:
1A"7"N"00000" "." 2A"-1,5" """" 3N"0" """" 4E"3"
es gibt also die kennzeichner A, N und E. wobei eben jeder der 3 etwas anedres aussagt. der string wird auf eine csv datei angewendet, welche ich vorher auslese. sagen wir mal, ich habe die folgenden werte in den spalten in der csv:
dann macht der obige string 00008.16,5"10" daraus. das problem ist auch nicht, was er draus macht, sondern lediglich, wie ich es anstellen kann, eine beliebige anzahl solcher aufrufe pro spalte hintereinander zuzulassen.
hier mal, was die kennzeichner machen:
N - die zahl dahinter wird als integer behandelt und entsprechend des formats formatiert
A - der wert wird als nummer behandelt und die zahl dahinter wird aufaddiert
E - wenn der wert in der csv nicht leer ist, wird er geleert
die daten liegen mir in einer arraylist vor. um genau zu sein, im ersten element der arrayliste habe ich eine array mit den gesplitteten werten der ersten zeile und so weiter. meine arrayliste hat also so viele elemente, wie die csv datei zeilen hat. ich hoffe, ich konnte klar machen, worum es mir geht? ich muss parktisch schauen, was alles zur zb ersten spalte zählt, mir dann die entsprechenden werte aus meiner arraylist zusammenpacken und dann eben weiter verwenden.
ich möchte einen string splitten. Der String sieht ungefähr so aus:
1N"00000" "." 2N"0000" "." 3N"0" "." 4N"0000"
was ich jetzt machen möchte, ist die 1N 2N und so weiter rauszusuchen und alles was dahinter steht. die punkte sind nicht immer da, also daran kann ich mich nicht orientieren. es soll also erstmal rauskommen:
1N"00000" "."
2N"0000" "."
3N"0" "."
4N"0000"
das problem ist allerdings, dass der string auch anders aussehen kann, wobei statt dem N auch ein A oder ein E stehen kann. das ist sone art formatierungssache...ja nach buchstaben wird was andres damit gemacht. jemand ne idee?
XmlTextReader tr = new XmlTextReader(file);
while (tr.Read())
{
switch (tr.NodeType)
{
case XmlNodeType.Element: // Der Knoten ist ein Element.
Console.Write("<" + tr.Name);
Console.WriteLine(">");
break;
case XmlNodeType.Text: //Anzeigen des Textes in jedem Element.
Console.WriteLine (tr.Value);
break;
case XmlNodeType.EndElement: //Anzeigen des Endes des Elements.
Console.Write("</" + tr.Name);
Console.WriteLine(">");
break;
}
}
allerdings komme ich nicht an den value von add ran..geht das irgendwie? das ganze soll dann in einem hashtable landen.