Laden...

Forenbeiträge von MuhammedC# Ingesamt 222 Beiträge

29.03.2006 - 11:25 Uhr

ja aber was bringt das?

das problem bleibt das selbe! also ich weiß das was anliegt! datareceived meldet beim eintreffen des 1Bytes das was da ist ! ich weiß aber es kommen im anschluss 100 bytes! (sollte sich in der real world application natürlich variabel unterscheiden!) also ich will nicht das 1. byte auslesen sondern alle !!!

mein neuer ansatz ist :


private void waitForData(SerialPort port, int expectedBytes)
        {
            readData = false;
            while(expectedBytes>port.BytesToRead && !readData)
                Thread.Sleep(1);
        }

wobei
readData durch einen Timer gesetzt wird mit :


private void timerElapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
           lock(this)
               readData = true; 
         }

datareceived macht nur sinn wenn ich nicht weiß wann was anliegt! da mir das aber bekannt ist, brauch ich keinen asynchronen weg sondern mir reicht der synchrone

29.03.2006 - 08:48 Uhr

ja ich weiß aber das sleep bezieht sich ja auf den thread! die serielle kommunikation wird vom os gehandelt über interupts da kann man den thread schlafen legen wie man will! die 2.te antwort versteh ich in meinem zusammenhang leider nicht! ?( Probierts einfach mal aus über nullmodem kabel von einem port zum anderen was zu schicken! da tritt das phänomen schon auf! datareceived ist ne feine sache wenn man asynchron arbeiten will, hatte aber oben geschrieben das ich eine synchronisierte anwendung hab und da auch nicht von abweichen kann!

Trotzdem danke für die Anteilnahme und bitte weitere Lösungsansätze! 🙂

LG MC#

28.03.2006 - 20:06 Uhr

genau das meinte ich. Hatte das problem auch mal! Wenn du sicher sein willst bau ne klasse drum rum mit Idisposable und Dispose die in der Threadabort Exception dann ist er auf jeden Fall weg! musste den Thread natürlich neuanlegen und das objekt.

28.03.2006 - 19:55 Uhr

Hallo ich habe ein Problem ich will synchronisiert einen Seriellekommunikation zwischen zwei Funkmodulen managen.

Wenn jetzt serielle Daten an dem Receiver Serialport anliegen frag ich sie ab! Leider scheint der PC zu schnell zu sein und sagt mir das nur die hälfte der Daten available ist und liest diese aus.
ich habe mir shon eine kleine hilfsmethode geschrieben:



private void waitForData(SerialPort port)
        {
            int bytes;
            bool running = true;
            if (port.BytesToRead > 0)
            {
                while (running)
                {
                    bytes = port.BytesToRead;
                    Thread.Sleep(10);
                    if (bytes == port.BytesToRead)
                        return;
                }
            }
        }


Für kleine Datenmengen ist die ok, für große ( 2000 Bytes 😁 )muss ich die wartezeit erhöhen ( writebuffer / readbuffer) sollte dicke ausreichen!)
Warum ist das so? gibts nen eleganteren weg??

Danke für eure hilfe 👍

28.03.2006 - 19:50 Uhr

Poste mal nen bisschen mehr code! was passiert in der threadabort exception die direkt bei abort geworfen wird ?

22.03.2006 - 10:35 Uhr

schon gefunden.

geht mit
menustrip mymenu = new menustrip(); //..
menustrip.enable = false;

sry war heute morgen wohl noch nicht richtig ausgeschlafen...

schönen tag noch !! MC#

22.03.2006 - 10:00 Uhr

Hallo,

gibt es eine Möglichkeit mein Menustrip zu sperren? Ich würde es gerne nicht unsichtbar sondern quasi "eingrauen" damit man es wohl noch sehen kann, aber nicht mehr zugänglich ist!

Danke und freundliche Grüße

MC#

19.03.2006 - 11:05 Uhr

hmmm lösung gefunden aber unverständlich!
Also hab den fehler gefunden eine progressbar scheint mit einem zu hohen wert aufgerufen worden zu sein! wo der wert her kommt ist allerdigns nicht ergründlich! naja hab den bastard begrenzt auf 0-100 dann klappt es!

besten dank trotzdem!

19.03.2006 - 02:38 Uhr

ist irgendwie eigenartig, irgendwie lässt sich der fehler nicht eingrenzen!
Das ober eigenartigste ist direkt nach dem die Exception geworfen wird, lässt sich die methode ohne fehler ansprechen...

hier mal der volle auszug der exception

State Machine shut down because of errors, exceptions
System.ArgumentOutOfRangeException: Der Wert 1000 ist für Value ungültig. Value sollte zwischen 'minimum' und 'maximum' liegen.
Parametername: Value
bei System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
bei System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
bei VisualBER.Forms.MeasurementBaseForm.ChangeReceiverComboBox(Int32 diversity) in C:\Dokumente und Einstellungen\Robin.MUDDAS-PC\Desktop\12.03.06\VisualBER\VisualBER\VisualBER\Forms\MeasurementBaseForm.cs:Zeile 368.
bei VisualBER.Forms.MeasurementBaseForm.StartMeasurement(Int32 turns, Int32 diversity) in C:\Dokumente und Einstellungen\Robin.MUDDAS-PC\Desktop\12.03.06\VisualBER\VisualBER\VisualBER\Forms\MeasurementBaseForm.cs:Zeile 500.
bei VisualBER.Manager.WiredManager.statemachine() in C:\Dokumente und Einstellungen\Robin.MUDDAS-PC\Desktop\12.03.06\VisualBER\VisualBER\VisualBER\Manager\WiredManager.cs:Zeile 413.

Falls einer ideen hat, bitte helfen!

18.03.2006 - 12:00 Uhr

Alles klar, danke ich werd heut nachmittag noch mal schauen! bin gerade nicht daheim, werd mich mal rühren wenn ich den fehler eingekreist hab 🙂

18.03.2006 - 01:58 Uhr

Hallo bekomme bei folgendem code, im erneuten durchlauf eine komsiche fehlermeldung.


private delegate void ChangeReceiverComboBoxCB(int diversity);
public void ChangeReceiverComboBox(int diversity)
        {
            if (this.InvokeRequired == false)
            {
                comboBoxReceiver.Items.Clear();
                if (diversity == 1)
                {                    
                    textBoxReceiverHardwareID.Hide();
                    labelReceiver.Hide();
                    labelReceiverHardwareID.Hide();
                    comboBoxReceiver.Hide();
                }
                else
                {
                    for (int i = 0; i < diversity; i++)
                    {
                        comboBoxReceiver.Items.Add(i);
                    }
                    comboBoxReceiver.SelectedIndex = 0;
                }
            }
            else
            {
                Invoke(new ChangeReceiverComboBoxCB(ChangeReceiverComboBox), diversity);
            }
}


follgende fehlermeldung:
Der Wert 1025 ist für Value ungültig. Value sollte zwischen 'minimum' und 'maximum' liegen.
Parametername: Value

diversity ist 3 und nicht 1025
beim ersten aufrufen der methode durch einen thread läuft alles super, beim 2.ten mal kommt die fehlermeldung.
einer ne ahnung was VS2005 damit meint?
Danke und schönes Wochenende
MC#

axo die Exception wird in der Invoke(...) Zeile geworfen!

14.03.2006 - 00:17 Uhr

ok


conn.Open();
                    SqlCommand command = conn.CreateCommand();
                    command.CommandText = @"DBCC SHRINKFILE('Trace_log', EMPTYFILE)";
                    command.ExecuteNonQuery();
                    conn.Close();


so gehts, aber kann man nicht verhindern, das die datei überhaupt erstellt wird?

13.03.2006 - 23:45 Uhr

Hallo ich habe eine in Visual Studio 2005 erstellte SQL Server 2005 Express Datenbank in mein Project eingebunden, wie aktiviere ich den Simple recovery mode von meinem C# programm aus.?


SqlCommand command = conn.CreateCommand();
                    command.CommandText = "ALTER DATABASE trace.mdf SET RECOVERY SIMPLE";
                    command.ExecuteNonQuery();
                    

das geht irgendwie nicht. Kommt ne fehlermeldung System.Data.SqlClient.SqlException: Falsche Syntax in der Nähe von '.'.
'RECOVERY' wird nicht als SET-Option erkannt.
bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning

etc..

einer von euch nen plan?

Danke LG MC#

P.S. bei datenbank name trace ergibt sich folgende meldung

System.Data.SqlClient.SqlException: Der Benutzer hat keine Berechtigung zum Ändern der 'trace'-Datenbank, oder die Datenbank ist nicht vorhanden.
Fehler bei der ALTER DATABASE-Anweisung.

Am coolsten wäre eigentlich das logging komplett zu stoppen, wenn das geht!

12.03.2006 - 03:10 Uhr

Super danke, werds direkt nachlesen!!

11.03.2006 - 23:02 Uhr

Hmm hab mir heute nen sql buch reingezogen, aber da stand leider auch nix vom löschen der daten! hat keiner von euch nen plan wie von c# gesteurt die bereits zum löschen markierten daten dauerhaft rausschmeißen kann?

09.03.2006 - 17:13 Uhr

ja genau, z.B. von einem Label die Schriftgröße!

09.03.2006 - 15:50 Uhr

Gibt es ein Property das mir hilft Schriftgrößen dynamisch zu verändern? Sprich wenn das Fenster größer wird, wird auch die Schrift größer.. Oder muss ich das über events selbst programmieren?

Danke und LG MC#

09.03.2006 - 15:47 Uhr

also google suche nach deinen stichworten ergibt nix... biste sicher das es da nicht nen anderes fachwort für gibt?

08.03.2006 - 02:52 Uhr

öhmmm und wie mach ich den ???

07.03.2006 - 16:33 Uhr

Richtig ist natürlich mdf datei...

07.03.2006 - 13:37 Uhr

Hallo hätte mal eine Frage zu ADO.net & co.
Und zwar folgendes ich habe in meiner Anwendung eine Datenbank die von meinem Programm aus gefüllt, verwaltet und geleert wird!
Klappt soweit auch alles wunderbar! Allerdings wenn ich die Daten lösche wird die Datenbank Datei nicht wirklich kleiner und die log Datei bläht sich quasi gerade zu auf!

Ist bestimmt nur ne basic frage, aber wie kann ich denn die log datei und die datenbank leeren! (bei der DB datei bin ich mir nicht so 100 prozentig sicher ob die nicht doch kleiner wird! es fallen zur Laufzeit unglaublich viel Daten an, so das man nie genau sagen kann was an Speicherplatz gewonnen bzw. neu genutzt wurde!)
Also in erster Linie geht es um die log Datei!

P.S. ich benutze VS2005 und Sql Server 2005 Express!

Danke und schönen Tag noch MC#

07.03.2006 - 13:31 Uhr

🤔 hätt ich mir das suchen ja sparen können 8o

07.03.2006 - 13:00 Uhr

Hi falls es einen interessiert, hier das hab ich auf codeproject gefunden:


private string DecimalToBase(int iDec, int numbase)
        {
            char[] cHexa = new char[] { 'A', 'B', 'C', 'D', 'E', 'F' };
            string strBin = "";
            int[] result = new int[32];
            int MaxBit = 32;
            for (; iDec > 0; iDec /= numbase)
            {
                int rem = iDec % numbase;
                result[--MaxBit] = rem;
            }
            for (int i = 0; i < result.Length; i++)
                if ((int)result.GetValue(i) >= 10)
                    strBin += cHexa[(int)result.GetValue(i) % 10];
                else
                    strBin += result.GetValue(i);
            strBin = strBin.TrimStart(new char[] { '0' });
            return strBin;
        }

07.03.2006 - 11:35 Uhr

Hi,

hat jemand nen code schnippsel für mich wie ich aus einem byte ein bitfeld mache?
Danke und LG MC#

04.03.2006 - 13:27 Uhr

hört sich sinnvoll an! kann ich den ein dataset verteilt auf mehrere xml / bzw. compressed xml dateeien verteilen? oder sollte man sie in eine sql server datei zurückspielen? bin leider recht neu auf dem gebiet und noch nen bissel planlos! gute tutorial tipps nehm ich auch gerne dankend an!!

LG MC#

03.03.2006 - 22:34 Uhr

Hallo ich will mit einem DataSet als Zwischenspeicher arbeiten. Hier werden verschiedenste Werte eingeschrieben.
Das Programm simuliert eine Funkmessung. Nach etwa 30000 durchlaufen wo während jedes Durchlaufes ca 5 mal mit verschiedenen Einträgen in das Dataset geschrieben wird, bekomme ich eine out of memory exception in der MessageLoop.

Jetzt meine Frage wie groß darf ein DataSet werden und wie kann ich es vergrößern!

Danke und schönes Wochenende wünscht
MuhammedC#

02.03.2006 - 15:55 Uhr

will euch meine lösung nach der anweisung von frisch nicht schuldig bleiben! also hier falls einer mal was ähnliches sucht!



private void textBoxMeasurementName_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Down)
            {
                try
                {
                    TextBox s = (TextBox)sender;
                    switch (s.Name)
                    {
                        case "textBoxMeasurementName":
                            textBoxCompany.Focus();
                            break;

                        case "textBoxCompany":
                            textBoxDepartement.Focus();
                            break;

                        case "textBoxDepartement":
                            textBoxStreet.Focus();
                            break;

                        case "textBoxStreet":
                            textBoxCity.Focus();
                            break;

                        case "textBoxCity":
                            textBoxTechnology.Focus();
                            break;

                        case "textBoxTechnology":
                            textBoxTransmitter.Focus();
                            break;

                        case "textBoxTransmitter":
                            comboBoxReceiverDiversityCount.Focus();
                            break;

                        case "textBoxReceiver":
                            panel_movement.Focus();
                            break;

                        case "textBoxName":
                            textBoxFrontName.Focus();
                            break;

                        case "textBoxFrontName":
                            textBoxTitle.Focus();
                            break;

                        case "textBoxTitle":
                            textBoxID.Focus();
                            break;

                        case "textBoxDistance":
                            comboBoxEinheit.Focus();
                            break;
                    }

                }
                catch { }
            }
        }




02.03.2006 - 13:26 Uhr

Hallo frisch, sowas gibts auch? 8o Danke werds mir sofort anschauen!!!

LG MC#

02.03.2006 - 13:13 Uhr

Hi, sorry aber das wurde bestimmt schon öfter gefragt!

Ich habe eine Form mit diversen Textboxen und will entweder wenn man mit enter eine Textbox bestätigt oder mit tab aus der textbox wechselt den focus auf eine bestimmte nächste textbox setzen! Habe auch schon mit diversen events rumgespielt (validating, leave...) allerdings habe ich follgendes Problem: wenn man das mit der maus auf eine bestimmte andere textbox bzw anderes control entern will, wird selbstverständlich ja erst mal das leave oder validating event von der vorhergehenen bzw. noch aktiven ausgeführt und ich muiss mich über mehrere controls zu meinem gewollten klicken! wie manage ich das am elegantesten?

Danke für eure Hilfe!

21.02.2006 - 21:45 Uhr

Ja danke für den hinweis! Hab mal wieder verplant in die Api zu schauen was genau DS.AcceptChanges() macht! Dachte man müsste das immer direkt machen!

Danke 🙂

21.02.2006 - 21:21 Uhr

wow! unterschied wie tag und nacht! danke!!

21.02.2006 - 20:58 Uhr

Hallo,

mal ne frage zur Performance! Ich fülle ein DataSet follgendermaßen:



public void writeRow(int packetnumber, byte receiverid, byte status,
            double linkquality)
        {
            TraceDataSet.StatusRow row = ds.Status.NewStatusRow();
            row.pnr = packetnumber;
            row.rid = receiverid;
            row.sid = status;
            row.lq = linkquality;
            ds.Status.AddStatusRow(row);
            ds.AcceptChanges();
        }


anschliessend ein kleiner Performance Test mit


ds = new TraceDataSet();
            
            for(int i = 0; i<20000;i++)
                writeRow(i, 0, 1,12.1);
            
            ds.WriteXml(@"c:\yo.xml", System.Data.XmlWriteMode.IgnoreSchema);


Jetzt meine Frage mach ich was falsch? das ganze ist super langsam! braucht 3-4min auf meinem 3.Ghz Rechner! muss man flushen oder ähnliches, oder ist das ganze einfach nicht performanter ? Danke und schönen abend noch!

21.02.2006 - 16:48 Uhr

Super danke,

das scheint zu klappen! Besten dank an alle und schönen Abend noch !!!

Grüße MuhammedC#

21.02.2006 - 16:42 Uhr

hi, danke auch an dich für die schnelle antwort! Leider kommt selbe Fehlermeldung! kann nicht in integer konvertiert werden!
oder muss ich in die vom designer erstellte methode und da rumspielen.

21.02.2006 - 16:34 Uhr

danke für die fixe antwort!

Nun ja das ist halt son datenbank spezielles ding, da kann man ja für jedes attribut definieren ob es null sein darf oder nicht, also sprich ob daten in dem datensatz zwingend vorhanden sein muss, oder nicht!
bei mir ist es halt nicht unbedingt nötig, (sogar in dem großteil der datensätze zwingend erforderlich das dieser wert null annimmt!)
also irgendwie muss et gehen! 🙂

21.02.2006 - 16:23 Uhr

Hallo,

ich habe ein DataSet zu einer Datenbank erstellt und will mit diesem nun eine neue Zeile einfügen (also im DataSet)

ich habe definiert das in der tabelle die letzte Zeile einen Fremdschlüssel zu einer anderen Tabelle enthalten kann, der aber auch falls nicht gefordert null sein kann!

Also wenn ich jetzt aber füllen will:


TraceDataSet ds = new TraceDataSet();
ds.Status.AddStatusRow(packetnumber, receiverid, status,
                       linkquality, packetlenghtdiference,null);

So also Status ist die Tabelle und da wo null steht, sollte eigenltich ein integer stehen! aber nu mal nicht immer! es kommt eine Compilerwarnung das null nicht in integer konvertriert werden kann! Kann man da was drehen?? Oder ist meine Vorgehensweise komplett falsch?

Danke für die Anteilname und evtl. hilfe 🙂
LG MC#

20.02.2006 - 19:13 Uhr

Hi mal was einfaches hoffe ich:

Ich habe eine SQL Datenbank in dem Projekt Explorer meinem Projekt hinzugefügt.
Habe eine Tabelle in die Datenbank eingepflegt.

Jetzt meine Frage wie connecte ich von c# zu dem ding? und muss ich die Datenbank erst an den SQL Server 2005 express übertragen, oder ist der direkt eingebunden!
Wie muss mein ConnectionString für den localhost aussehen und welche dienste müssen aktiviert sein?

Danke für die Hilfe
LG MuhammedC#

20.02.2006 - 14:24 Uhr

Hast du die Empfangs und Sende seite richtig ( identisch ) initialisiert? wenn du auf die windows eigenschaften zurückgreifst und nicht selber hand anlegst schau mal im geräte manager nach, ob beide gleiche werte haben!

Ansonsten versuch mal mit Realterm den Port auszuspionieren ob überhaupt was rauskommt!

20.02.2006 - 13:23 Uhr

Hi, ja es werden später mit ZedGraph diverse statistische Auswertungen mit den Daten gemacht! Da würden Abfragen schon recht cremig kommen! So wie z.B. alle Packete die verloren gegangen sind bitte über die Packetnummern, oder ähnliches.

20.02.2006 - 01:20 Uhr

Hallo,

bin noch (relativ) neu in .net und c#, und hier mal ne frage:

Ich habe eine C#-Anwendungen die im Moment Daten während TCP/Verkehrs vergleicht und die Daten in ein TraceFile schreibt.
Jetzt will ich die Daten aber komfortabel zwischenspeichern.
Meine Frage wie ist der eleganteste Weg mit C#.

Sollte man die Daten in einer Datenbank erfassen? (wenn ja wie in kurzen Stichworten bitten 🙂, also hab schlagworte wie ado.net oder so was gehört...)
oder doch besser in einer Klasse in Arrays, die dann anschliessend serialisiert werden.

Schönen abend und danke für die antworten.

P.S. Die Daten sehen wie folgt aus (; -> Trennzeichen)

1;1;2;4;5;...
1;2;2;4;2;...
2;1;2;3;4;...

18.02.2006 - 23:10 Uhr

Super danke! Genau das ist es!!!

Schönen Abend noch!!!

18.02.2006 - 22:26 Uhr

Hi,

mal ne anfänger basic frage :

ich will die bitfehlerrate darstellen! Formel unten entnehmen, was mach ich falsch?

 
         double berrate = 0;
            if (ber != 0)
                berrate = ber / (anzahlpackets*bytes);
            else
                berrate = 0;
            ChangetextBoxBERrate(berrate.ToString("0.0000"));

Es wird immer 0 angezeigt, oder in dem obrigen fall 0.00000!
Einer nen plan was ich falsch mache?

31.01.2006 - 20:24 Uhr

versteh ich nicht ganz, also ich habe 2 resx dateien, und es wird dynamisch zur laufzeit abhängig von der os sprache entschieden welche benutzt wird! also erst mal komisch das ich zwei gleichnahmige strings in jede einfügen kann aber keine gleichnahmigen bilder!

wenn ich jetzt selbst die images mit de und en anhänge müsste ich ja programmier das je nach sprache entschieden wird welches image geladen wird! damit wäre die dynamik doch für nüsse oder? man müsste das programm dann auch später neu kompilieren wenn eine sprache hinzukommen soll und nicht einfach die dll ein kopieren! oder seh ich das falsch!

LG MC#

31.01.2006 - 15:47 Uhr

Hi all,

ist es möglich mit VS2005 C# über den Resourcenmanager Bilder zu globalisieren!
Also:

ich habe würde gerne ähnlich wie mit Strings in einer ....en.resx datei ein image.png und in einer anderen ...de.resx datei ebenfalls ein image.png.
Die images unterscheiden sich selbstredend durch engl und deutschen text!
allerdings wird im moment gemeckert das image.png wäre schon vorhanden!
Einer nen tipp oder abhilfe?

LG MC#

30.01.2006 - 21:16 Uhr

Hi, wahrscheinlich ist die rubrik hier falsch aber ich poste trotzdem mal da ich keine passendere gefunden hab... (sry falls nen op ne bessere section dafür hat bitte umposten! danke)

Also ich habe eine Hochschullizenz von Visual Studio 2005 prof., visio, visual studio tools for microsoft office!
Ist es mit dem Combi nun möglich ein Reverse Engineering in Visio / UML zu machen ?
Hab gelesen das man im projekt menü ein button reverse engineering geben, der allerdings bei mir nicht da ist! brauch ich die enterprise architect edition oder ähnliches?

Danke für eure Hilfe und sry wegen dem falschen forum!

Grüße MC#

30.01.2006 - 11:48 Uhr

ok danke!

30.01.2006 - 11:45 Uhr

hi, danke!

Haste auf der Seite was spezielles im auge? Die seite ist recht umfangreich und bietet fürs ungeübte auge, leider zu overdosed 🙂

GreetZ MC#

30.01.2006 - 11:32 Uhr

Hi,

kann mir jemand ein gutes Tutorial für das gestallten von Windows Forms Applikationen empfehlen!
Ich interessiere mich besonders dafür wie man mit verschiedenen Designs umzugehen hat! Auch wie man richtig mdi und sdi handhabt! Das Hauptproblem ist eigentlich das meine designten Windows andwendungen auf jedem PC anders aussehen!

Danke für eure Tipps und LG MC#

26.01.2006 - 22:33 Uhr

komische sach, ich kommuniziere mit einer c# von windows aus mit einem linux programm, welches ich nicht geschrieben habe.
Allerding wenn ich meine Verbindung schließe , schnallt das linux programm das sofort...

Ich frag morgen noch mal nach wie das da läuft.

26.01.2006 - 21:59 Uhr

Hi,

wie kann ich prüfen ob eine TCP Verbindung noch besteht?
Also wenn die Gegenseite den Socket geschlossen hat.
Gibt es eine Methode oder Property die man abfragen kann?