Announcement

Collapse
No announcement yet.

Multiline ListBox.Lines als Parameter

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Multiline ListBox.Lines als Parameter

    Hallo alle,
    mit unten stehendem Codefragment (aufs wesentliche gekürzt)
    habe ich einige Probleme, die ich leider nicht lösen konnte. Vielleicht kann mir ja jemand helfen.
    Der Eigenschaft Data wird aus dem Hauprformular ein TextBox.Lines Element übergeben und einem Array fester Groesse zugewiesen. Dieses mit ArrayList dynamisch anzulegen hat bei mir leider mit der Parameterübergabe nicht geklappt. Das klappt zwar bei meiner jetzigen Lösung (die Anzahl der übergebenen Elemente wird korrekt ermittelt) aber die Summenbildung (und damit auch der rest des progs) funktioniert nicht. Bin für jeden Tip dankbar.

    Gruß
    Horst

    public class foo {
    static double m_Mean;
    static int m_n;
    ...
    static string[] m_Data = new string[256];

    public static string Mean { get {
    return Convert.ToString(Math.Round(m_Mean, 3)); } }
    public static string n { get { return m_n; } }
    public static string[] Data { set { m_Data = value; } }

    public static void Calc() {
    try {
    double[] NumData = new double[m_Data.Length];

    for (int cnt = 0; cnt <= m_Data.Length; cnt++) {
    double tmp = Convert.ToDouble(m_Data[cnt]);
    if (tmp == 0) break;
    m_n = cnt + 1;
    NumData[cnt] = tmp;
    m_sx += tmp;
    }

    m_Mean = m_sx / m_n;
    ...

  • #2
    hab gerade einen Teil meiner Frage selbst beantworten können:
    der Versuch einen Leerstring in ein double zu konvertieren, wirft eine Ausnahme (das letzte Element der übergebenen Stringliste ist i.d.R. ein Leerstring. Die Brechnungsfunktionen wurden daher nie erreicht.

    Hab nun den Code wie folgt geändert, ud es funktioniert:
    ...
    for (int cnt = 0; cnt <= m_Data.Length; cnt++) {
    if (m_Data[cnt] == "") {m_n = cnt; break; }
    double tmp = Convert.ToDouble(m_Data[cnt]);
    NumData[cnt] = tmp;
    m_sx += tmp;
    m_sxx += sqr(tmp);
    }

    m_Mean = m_sx / m_n;
    ..

    Comment

    Working...
    X