Controls ist eine ControlCollection, folglich sind die Elemente dadrin Controls...
Weil der ctrl nicht kenn und außerdem soll man später drauf zugreifen können.
ein.
Nicht als Textboxen iterieren, sondern als Control.
Control nach Möglichkeit casten und wenn Textbox, dann merken.
foreach (Control ctrl in this.Controls)
{
TextBox txt = ctrl as TextBox;
if (txt != null) serialTextBoxes.Add(txt);
}
Was will man groß dazu sagen?!
Das ist ein Satz, dann erklärst du was static Member sind und gut ist.
Mach doch einfach ein Beispiel dazu, wenns dir zu wenig ist.
Wenn ich wüsste welche Distribution das ist...
Hier steht nur was von Busylinux.
Ein DBox2-Image.
Am besten ich warte, bis die im Entwicklungsforum mal was gesagt haben...
Fein, mit Links geht.
Problem ist nur, dass ich auf dem Linuxrechner weder aptitude noch apt-get hab.
(nur wget, kann man damit installieren? )
Notfalls muss ich halt nen eignes Programm schreiben...
Grüße.
Folgendes Problem:
Ich hab hier eine Steckdose, die sich via cgi-script an und abschalten lässt. Im Browser aufrufen kann ich die wunderbar.
Jetzt möchte ich aber über einen Linuxrechner ohne gui (also nur console) das script aufrufen.
Mit welchem Befehl kann ich das am besten machen?
(ich muss mich da nicht irgendwie anmelden oder so, sondern einfach nur das cgi-script aufrufen, den Rest macht das Gerät allein)
bin dankbar für Vorschläge
D.h. du hast es einfach nur abgetippt und weißt nicht, was da passiert?
Das ist aber nicht von praktischem Nutzen. Du solltest lieber noch etwas die Sprache (bzw. Programmieren allgemein) lernen.
Eine gute Referenz ist z.B.: C# - Galileo OpenBook
Also...
Ich habs mal mit oberfläche gemacht und einfach paar Textboxen eingefügt.
Im Konstruktor merk ich mir alle Textboxen und geh die später durch.
public partial class Form1 : Form
{
public List<TextBox> serialTextBoxes = new List<TextBox>();
public Form1()
{
InitializeComponent();
foreach (TextBox txt in this.Controls)
{
serialTextBoxes.Add(txt);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
TextBox txt = sender as TextBox;
if (txt == null) return;
string serial = txt.Text;
if (serial.Length <= 2) return;
serial = serial.Replace(" ", "");
for (int i = 0, a = serialTextBoxes.Count - 1; i < serial.Length && a >= 0; i += 2, a--)
{
string part = string.Empty;
if (i + 1 < serial.Length)
part = serial.Substring(i, 2);
else
part = serial[i].ToString();
serialTextBoxes[a].Text = part;
}
}
}
So, den Rest darfst du erstmal allein machen.
serial war nur im Beispiel, damit ich eine Seriennummer hab.
Die Textboxen entsprechen serialParts.
Natürlich muss du bedenken, dass, wenn du eine Seriennummer eingibst, unterschieden werden muss, zwischen manueller eingabe und copy&paste.
Das beispiel von mir ist nur, wenn du eine Seriennummer reinkopierst, eine einfache eingabe wird dadurch nicht behandelt.
erm... lass mich raten - du programmierst noch nicht lange c#?!
private void Box1_TextChanged(object sender, EventArgs e)
{
string[] serialParts = new string[5];
string serial = "abc def2335";
serial = serial.Replace(" ", "");
for (int i = 0, a = 0; i < serial.Length; i += 2, a++)
{
string part = string.Empty;
if (i + 1 < serial.Length)
part = serial.Substring(i, 2);
else
part = serial[i].ToString();
serialParts[a] = part;
}
}
So müsste das aussehen, musst du natürlich noch anpassen, damit es in die Checkboxen eingetragen wird...
I mean this line
string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + names[0] + ";";
So the argument shouldn't be G:\... and so on, but the URI-Path to your Oracle-Server
Toll, da geb ich mir mühe und du sagst nur "geht so".
Naja, theoretisch hätte ich einfach nur immer ein Zeichen bis EOF gelesen, aber ich weiß nicht, ob's vielleicht noch schneller geht.