Laden...

Forenbeiträge von Nachtwind Ingesamt 118 Beiträge

04.07.2013 - 01:31 Uhr

Hi,
Ich stehe gerade ein wenig auf dem Schlauch (hab mich zu lange nicht mehr mit c# beschäftigt..)...

Ich habe eine Datei in foglendem Format:

[pre]
SEKTION
{
    key = val
    key = val
	SUBSEKTION
	{
		key = val
		key = val
		SUBSEKTION
		{
			key = val
			key = val
		}
		SUBSEKTION
		{
			key = val
			key = val
		}
	}
}
[/pre]

Diese würde ich gerne einlesen und möglichst direkt abbilden.
Ich habe irgendwo im Hinterkopf, dass man dafür einen Graphen wie in An Extensive Examination of Data Structures Using C# 2.0: Part 5: From Trees to Graphs beschrieben einsetzen kann.. aber ich habe ehrlich gesagt nicht mehr die geringste Idee, wie ich das angehen soll. Es scheitert schon beim einlesen.

Im Moment gehe ich mittels Streamreader die Datei Zeile für Zeile durch, was jedoch bei mehreren tausend Zeilen irgendwie unsinnig erscheint und speichere immer die letzte Poition einer geöffneten klammer und versuche dazwischen zu parsen. Was alles nicht wirklich funktioniert.

Kennt hier jemand eine schnelle, einfache Methode eine derartige Filestruktur einzulesen und möglichst als Tree zu behalten?
Danke schonmal!

16.06.2010 - 20:46 Uhr

Hi,
Im Moment arbeite ich daran auf meinem Telefon Bilder mit 3000x3000 Pixeln anzuzeigen. Da das auf direktem Weg nicht geht (OutOfMemory Exception) wollte ich mal hören ob hier jemand einen Weg kennt Bilder in Teilen zu lesen und in einer Picturebox darzustellen. NonPlusUltra wäre ja das Gesamtbild in der Box scrollen zu können, aber nicht nötig...

Im Moment experimentere ich mit OpenNetCF herum komme aber aufgrund mieser Dokumentation und ebenso unbrauchbarem Forum brumm nicht wirklich weiter damit..

Danke schonmal im voraus

04.06.2010 - 11:27 Uhr

Das ist eben das Problem. Die Systeme hängen nicht im selben Netzwerk UND die Daten von A sind nicht alle mit B vereinbar. Es geht um im endeffekt zwei Tabellen, die snychron gehalten werden müssen und nicht mehr ;0)

Aber ich denke, dass meine Lösung so jetzt funktioniert.

04.06.2010 - 10:46 Uhr

Ah, danke. Mit einem Dataadapter hat es nun funktioniert. Meine Read() Geschichte war wohl auch ein Problem...

04.06.2010 - 09:13 Uhr

Ok, habe auch gestern versucht diesen Weg einzuschlagen, jedoch ohne Erfolg.. mit folgendem Code habe ich es versucht:


public static void reader(){
.....
            try
            {
                SqlDataReader myReader = null;
                SqlCommand myCommand = new SqlCommand("select * from EXP_PROJECT_HOLE",
                                                         conn);


                DataSet ds = new DataSet();

                myReader = myCommand.ExecuteReader();
                while (myReader.Read())
                {
                    Console.WriteLine(myReader["HOLE"].ToString());
                    Console.WriteLine(myReader["SITE"].ToString());

                    
                }


                ds = convertDataReaderToDataSet(myReader);

                ds.WriteXml("hole.xml",XmlWriteMode.WriteSchema);
                
                

            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
}


//////////////

       ///    <summary>
        ///    Converts a SqlDataReader to a DataSet
        ///    <param name='reader'>
        /// SqlDataReader to convert.</param>
        ///    <returns>
        /// DataSet filled with the contents of the reader.</returns>
        ///    </summary>
        public static DataSet convertDataReaderToDataSet(SqlDataReader reader)
        {
            DataSet dataSet = new DataSet();
            do
            {
                // Create new data table

                DataTable schemaTable = reader.GetSchemaTable();
                DataTable dataTable = new DataTable();

                if (schemaTable != null)
                {
                    // A query returning records was executed

                    for (int i = 0; i < schemaTable.Rows.Count; i++)
                    {
                        DataRow dataRow = schemaTable.Rows[i];
                        // Create a column name that is unique in the data table
                        string columnName = (string)dataRow["ColumnName"]; //+ "<C" + i + "/>";
                        // Add the column definition to the data table
                        DataColumn column = new DataColumn(columnName, (Type)dataRow["DataType"]);
                        dataTable.Columns.Add(column);
                    }

                    dataSet.Tables.Add(dataTable);

                    // Fill the data table we just created

                    while (reader.Read())
                    {
                        DataRow dataRow = dataTable.NewRow();

                        for (int i = 0; i < reader.FieldCount; i++)
                            dataRow[i] = reader.GetValue(i);

                        dataTable.Rows.Add(dataRow);
                    }
                }
                else
                {
                    // No records were returned

                    DataColumn column = new DataColumn("RowsAffected");
                    dataTable.Columns.Add(column);
                    dataSet.Tables.Add(dataTable);
                    DataRow dataRow = dataTable.NewRow();
                    dataRow[0] = reader.RecordsAffected;
                    dataTable.Rows.Add(dataRow);
                }
            }
            while (reader.NextResult());
            return dataSet;
        }



Wenn ich den Code nun ausführe (Converter snippet ist aus dem Internet, nicht von mir) dann wird eine XML Datei brav erstellt und sie enthält auch das Schema, welches zur Datenbank passt, aber es werden keine Daten abgelegt, obwohl sie existieren (und mit while (myReader.Read()) angezeigt werden).

Verstehe ich eventuell den Datareader falsch? Liest er Daten immer nur nach und nach ein? Dachte bislang er würde sich selbst mit daten befüllen bis die Quelle ausgelesen ist?

04.06.2010 - 00:03 Uhr

verwendetes Datenbanksystem: MS SQL 2008

Hi,
Ich habe ein 'kleineres' Problem. Ich muss mehrere Tabellen an Rechner A aus einer Datenbank auslesen und in Rechner B einspielen. Ein direktes synchronisieren der Datenbanken geht nicht, auch ein Dump ist nicht möglich.. meine Idee wäre es die entsprechenden Daten auszulesen und in einer XML Datei zu speichern, die ich dann bei B wieder einlesen kann.. gibt es für das Abspeichern/Einlesen irgendwelche vorgefertigten Methoden im SQLClient? Also sowas wie Datatable.WriteXML?

05.01.2010 - 20:26 Uhr

Hi!
Danke schonmal fuer eure Idee :0)

Auf die Idee mit einer blauen Ebene bin ich auch schon gekommen und wuerde diese als Noetloesung auch machen, aber ich will quasi Seespiegelschwankungen darstellen und auch modellieren wo ein Ablauf sein koennte - und da waere es 'genauer' wenn ich ein Partikelwasser haette, was dann wirklich herausschwappt ,0)

Die Google Earth Loesung wuerde ich nur ungern nutzen - bin kein Freund von Google und zum anderen ist es auch nicht wirklich das was ich suche..

Aber danke dennoch, werde mich mal ein wenig weiter umschauen.

05.01.2010 - 16:34 Uhr

Hi,

Aaalso ich suche eine Software mit der ich 3D/Hoehen Daten (am liebsten SRTM Daten) visuell darstellen (soweit eigentlich kein Problem) und 'fluten' kann.
Die 3D Darstellung von SRTM wurde schon einige male in C# vorgemacht, aber das anschliessende Fuellen dieser Daten mit 'Wasser' habe ich leider noch nicht gesehen,w aere aber ausserordentlich wichtig. Hat irgendjemand einen Rat, wie ich da am besten Anfangen sollte? Ich dachte daran eventuell eine freie 3D Engine (Ogre, Irrlicht etc) zu verwenden um mit deren Wassergedoens das Wasser darzustellen.. hab aber keine wirkliche Erfahrung mit diesen Dingen, gibt es also jemandem hier, der mir mit so einem Programm helfen kann?

18.08.2009 - 20:19 Uhr

Hm, jain.. das ist im Grunde das, was zu tun waere. Neben diesen beiden Aenderungen gibt es aber noch den ueblichen wust an Variablen und 'fremd'funktionen, die einfach in die neue Datei uebernommen werden muessten.

18.08.2009 - 18:44 Uhr

Danke schonmal fuer den Code.
startindex - ist das das erste Zeichen des funktionsaufrufs? also das 'v' von void?

was muss der Regex abdecken?
habe einen, der den kompletten Functionsheader abdeckt (also void bla(args))

18.08.2009 - 17:18 Uhr

Naja, im grossen und ganzen gehts also wieder zurueck zu einer etwas umstaendlichereren Suche.. schade. Dachte Regex waeren hier der beste Weg.

Ich versuche einen kleinen Parser zu schreiben mit dem ich Arduinosketche durch avr-gcc schicken kann. Da die Sketche einen etwas anderen Aufbau als AVR-C Dateien haben muss ich die resultierende Datei etwas umbauen, so dass aus


void setup()
{
  //..
}

void loop()
{
 //...
}


void main()
{
//setup code

while(true)
 {
   //loop code
  }
}

wird.

18.08.2009 - 16:46 Uhr

Naja... gedacht habe ich mir das auch schon, aber da ich keinen echten Codeparser brauche sondern nur ganze Funktionen aus einer Datei auslesen brauche, dachte ich wuerde Regex reichen. Schade, dass nicht(?)

18.08.2009 - 15:21 Uhr

Hm.. in einem kleinen Programm versuche ich C(++) Dateien zu parsen..
Im Moment versuche ich erst einmal ganz einfach nur die Funktionen herauszuziehen.. Klassen kaemen spaeter einmal dran - das ist erstmal zweitrangig.
Das einfachste waere sicher fuer diese Art Job eine Regexsuche zu machen... Dummerweise habe ich praktisch keine Idee von Regex und versucht folgenden Code zusammenzubasteln:


  void[^]
  /{ 
  \b[A-Z0-9._%+-
  \}

Das ganze ist, natuerlich, ziemlich falsch... hat hier jemand eine Ahnung, wie man den entsprechenden Pattern schreiben kann? am besten waere es auch statt nur void auch int/char etc zu haben.. aber da hab ich nun gar keinen Schimmer mehr von...

Danke schonmal :0)

08.11.2008 - 21:03 Uhr

Hi,
Ich hoffe, dass das hier irgendwie reingehoert.. bin mir da aber nicht ganz sicher.
Also, ich habe vor eine Verbindung von meinem Win Mobile System zum normalen XP Rechner herzustellen. Das versuche ich ueber Bluetooth zu realisieren und kann kein Active Sync nutzen (Habs bislang nie hinbekommen via Bluetooth zu syncen.. das ist aber jetzt nicht das Thema ;0)).

Habe ueberlegt das ganze via Serial Ports laufen zu lassen, aber bislang hat es nicht so geklappt, wie ich wollte..

Im Grunde sollte ich doch nur einen Port (zugewiesen in windows) abhoeren bzw darauf schreiben und schon sollte es gehen - in miener vorstellung zumindest..
oder mache ich da etwas grundlegend falsch?

Danke schonmal

22.10.2008 - 19:11 Uhr

Danke, das hat bestens funktioniert :0)

22.10.2008 - 12:25 Uhr

japp, schon klar - aber ich wuerde gerne auf einen rutsch die gesamte liste in ein string array uebertragen ;0)

22.10.2008 - 11:48 Uhr

Hi,
Ist es moeglich die Elemente von System.Drawing.Color in ein String Array zu uebergeben? Also so, dass dabei rauskaeme: { "Red", "Green", "Blue", "Yellow", "Black", "Pink", .. }

Oder bleibt mir da nichts anderes uebrig als das alles abzutippen?

Gruss
Nachtwind

18.09.2008 - 17:35 Uhr

Im Moment lade ich HTML Dateien mit dem folgenden Code herunter - aber ich kaempfe mit dem herunterladen von Images.. das will nicht so wie ich will..

                    req = (HttpWebRequest)HttpWebRequest.Create("http://www.paldat.org/"+tmp);
                    req.CookieContainer = cookies;
                    req.Method = "GET";
                    res = (HttpWebResponse)req.GetResponse();
                    StreamReader lsr = new StreamReader(res.GetResponseStream());
                    html = lsr.ReadToEnd();

kann mir kurz wer erklaeren, wie ich den Stream als Image (JPG) abspeichern kann?

18.09.2008 - 09:22 Uhr

Nicht direkt - es ist eigentlich genau das gegenteil von dem, was ich wollte o0

17.09.2008 - 23:12 Uhr

Hi!

Ich versuche gerade irgendwie mich auf einer website einzuloggen um dann die darauf folgende Seite speichern zu koennen (grob gesagt..).
Zum Login ist folgendes Form auf der Seite vorhanden:

[php]<form action="index.php?page=login&mode=results_r" method="post" name="f">
<table>
<tr>
<td>Username:</td>
<td><input type="text" maxlength="20" size="20" name="userSearch" value=""></td>
</tr><tr>
<td>Password:</td>
<td><input type="password" maxlength="10" size="15" name="passSearch"></td>
</tr>
</table>
<input type="submit" name="submitLogin" value="Login">
</form>[/php]

An sich sollte es ja nicht schwer sein mittels Cookiecontainer und derartigen sachen das vorhaben zu schaffen.. aber irgendwie klappt das bei mir nicht..
Im folgenden mein Code zum Download der folgeseite:


           Uri uri = new Uri("http://www.paldat.org/");
            CookieContainer cookieContainer = new CookieContainer();
            string html;
            string loginData = "userSearch=Nachtwind&passSearch=abcde&submitLogin=Login";

            HttpWebRequest sessionRequest = (HttpWebRequest)WebRequest.Create(uri);
            sessionRequest.CookieContainer = new CookieContainer();
            cookies = sessionRequest.CookieContainer;
            HttpWebResponse sessionResponse = (HttpWebResponse)sessionRequest.GetResponse();
            sessionResponse.Close(); 

          // rtf1.Text += cookies.GetCookieHeader(uri) + "\n";

            // Einloggen
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.paldat.org/index.php?page=login&mode=alp_r"); //mode=alp_r = index
            req.CookieContainer = cookies;
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] loginDataBytes = encoding.GetBytes(loginData);
            req.ContentLength = loginDataBytes.Length;
            Stream stream = req.GetRequestStream();
            stream.Write(loginDataBytes, 0, loginDataBytes.Length);
            stream.Close();
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();

            req = (HttpWebRequest)HttpWebRequest.Create("http://www.paldat.org/index.php?page=login&mode=alp_r");
            req.CookieContainer = cookies;
            req.Method = "GET";
            res = (HttpWebResponse)req.GetResponse();
            StreamReader sr = new StreamReader(res.GetResponseStream());
            html = sr.ReadToEnd();

            rtf1.Text = html;
            //MessageBox.Show(html);

hat jemand eine Idee, was ich da falsch mache?

24.07.2008 - 20:02 Uhr

das ganze ist ein wenig komplizierter. Ich habe hier eine Reihe DLLs, die ich in ein programm mittels Extern.. einbinden will. Das Interface fuer diese DLLs stand in der Form, wie ich ihn hier gepostet hatte in einer Delphi Datei, da sie vorher von einem in Delphi geschriebenem Programm benutzt wurden.
Die ZUgriffsverletzung kam, wenn ich eine Funktion in der DLL starten wollte - aber ich schaetze, dass das daran hing, dass ich die DLL falsch aufgerufen habe..

Aber danke fuer deine Hilfe, wusste nichts mit pbchar anzufangen, aber wenn man da einfach string fuer benutzen kann ist alles etwas einfacher..

24.07.2008 - 15:19 Uhr

Hab leider kaum Ahnung von Delphi und bisher hat keine idee von mir funktioniert dies in C# umzusetzen.
Im grunde sind das die Funktionen, die ich in einer externen DLL aufrufen muesste.. aber bislang hat es, wie gesagt, nicht funktioniert das umzusetzen. Bekomme dann immer Speicherzugriffsfehler..

  TInitFunc = function(SizeX,SizeY : byte; StartupParameters : pchar; OK : pboolean) : pchar; stdcall;
  TDoneProc = procedure; stdcall;
  TSetPositionProc = procedure(X, Y: byte); stdcall;
  TWriteProc = procedure(Str : pchar); stdcall;
  TCustomChar = procedure(Chr : byte; Data : TCustomArray); stdcall;
  TReadKeyFunc = function : word; stdcall;
  TSetBacklightProc = procedure(LightOn : boolean); stdcall;
  TSetContrastProc = procedure(Contrast : byte); stdcall;
  TSetBrightnessProc = procedure(Brightness : byte); stdcall;
  TPowerResumeProc = procedure; stdcall;
  TSetGPOProc = procedure(GPO : byte; GPOOn : boolean); stdcall;
  TSetFanProc = procedure(T1,T2 : byte); stdcall;
 TCustomCharIndex = function(Index : byte) : byte; stdcall;

Kann das jemand uebersetzen?

Danke schonmal

06.06.2008 - 23:34 Uhr

daran sitz ich schon den ganzen abend - aber ich bekomme das ganze absolut nicht hin.. wie gesagt, verstehe wenig von crypto und noch wen iger von Python - und da weis ich zT auch leider absolut nicht, was die entsprechungen von .Net funktionen sind...

*edit* das ist das, was ich im Moment als Code habe:

        {

            //byte[] key = Convert.ToByte("8C35192D964DC3182C6F84F3252239EB4A320D2500000000");
            // 8C35192D964DC3182C6F84F3252239EB4A320D25 

            //byte[] iv = HexToBytes("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
            // FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 
            Rijndael rij = Rijndael.Create();      
            
            int discarded;
            rij.Key = Encoding.UTF8.GetBytes("8C35192D964DC3182C6F84F3252239EB4A320D25");
            rij.IV = Encoding.UTF8.GetBytes("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
            rij.Mode = CipherMode.ECB;

            
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            byte[] byt;
            ct = rij.CreateEncryptor(rij.Key, rij.IV);
            byt = Encoding.UTF8.GetBytes(rtfLinks.Text);
            ms = new MemoryStream();
            cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
            cs.Write(byt, 0, byt.Length);
            cs.FlushFinalBlock();
            cs.Close();
            rtfLinks.Text = Convert.ToBase64String(ms.ToArray());
   
        }

Im Moment jammert der Debugger nur, dass der Key eine unpassende Laenge hat..

06.06.2008 - 23:06 Uhr
#!/usr/bin/env python

import binascii
import base64 
from Crypto.Cipher import AES
import sys

# 8C 35 19 2D 96 4D C3 18 2C 6F 84 F3 25 22 39 EB 4A 32 0D 25

infile = sys.argv[1]
Key = binascii.unhexlify('8C35192D964DC3182C6F84F3252239EB4A320D2500000000')

IV = binascii.unhexlify('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
IV_Cipher = AES.new(Key,AES.MODE_ECB)
IV = IV_Cipher.encrypt(IV)

obj = AES.new(Key,AES.MODE_CFB,IV)

rsdf = open(infile,'r')

data = rsdf.read()
data = binascii.unhexlify(''.join(data.split()))
data = data.splitlines()


for link in data:
    link = base64.b64decode(link)
    link = obj.decrypt(link)
    print link.replace('CCF: ','')

rsdf.close()

Da ich leider kaum Ahnung von Cryptography und praktisch keine Python Erfahrung habe, komme ich mit diesem Code absolut niocht klar..

Hat jemand eine Idee, wie man das in C# uebersetzt bekommt?

03.06.2008 - 08:47 Uhr

Hi und danke.
Das Bogenmass war es - hatte das total vergessen :0)

02.06.2008 - 21:26 Uhr

Hi,
Im moment stehe ich ein wenig auf dem Schlauch.. ich versuche einen kompass auf meinem Display darzustellen und dazu brauche ich natuerlich eine grafische ausgabe.
Soweit ist die idee ja nicht schwer umzusetzen, aber ich komme einfach irgendwie nicht vorran - im moment nutze ich folgenden code:


       private void compass_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawEllipse(new Pen(Color.Black, 4), new Rectangle(0, 0, 135, 135));            
            //Get bearing      
            int head = bearing;
            double x2, y2;
            int  x, y, u, v;

            x = 67;
            y = 0;
            u = 67;
            v = 67;

            x2 = (x - u) * (Math.Cos(Convert.ToDouble(head))) - (y - v) * (Math.Sin(Convert.ToDouble(head))) + u;
            y2 = (x - u) * (Math.Sin(Convert.ToDouble(head))) + (y - v) * (Math.Cos(Convert.ToDouble(head))) + v;

            label1.Text = Convert.ToInt32(x2).ToString() + " : " + Convert.ToInt32(y2).ToString(); //Debug

            e.Graphics.DrawLine(new Pen(Color.Black, 2), Convert.ToInt32(x2), Convert.ToInt32(y2), 135/2, 135/2); 
        }

eigentlich sollten ja x2 und y2 den punkt auf der ellipse (kreis) sein, der durch bearing festgelegt wird - leider klappt das nicht.
Ich tippe darauf, dass das mit den verschiedenen Converts zusammenhaengt, bin mir da aber nicht sicher.
Hat da jemand eine Idee dazu?
Danke schonmal

22.04.2008 - 11:17 Uhr

        public bool loadFile(String newLink)
        {
            bool erg = true;
            if (newLink.IndexOf("Moved", 0) > 0)
            {
                String newHost = null;
                String end = "\r\n";
                String url;

                int pos1 = newLink.IndexOf("Location:");
                int pos2 = newLink.LastIndexOf(".rapidshare");
                newHost = newLink.Substring(pos1 + 17, pos2 - (pos1 + 17));
                int pos3 = newLink.IndexOf("/files/", 0);
                int pos4 = newLink.IndexOf("Content-Length:", 0);
                url = newLink.Substring(pos3, (pos4 - end.Length) - pos3);
                host = newHost + ".rapidshare.com";
                WebClient wc = new WebClient();
                wc.Headers.Add("Authorization", "Basic " +
                  Convert.ToBase64String(
                  Encoding.ASCII.GetBytes(username + ":" + passwort)));
                System.Uri uri = new Uri("http://" + host + url);
                wc.DownloadFileAsync(uri, "Test.rar");                    

            }
            else
            {
                erg = false;
            }
            return erg;
        }

Hier eine schnell zusammengehaemmerte Version um eine Datei runterladen zu koennen.
Leider fehlt noch jede Menge zeug (Dateigroesse...) - aber ein Anfang waer damit gemacht ;0)

Danke nochmal fuer den Urspruenglichen Code McLovin!

19.04.2008 - 20:16 Uhr

naja, bei mir liegt das noch etwas anders - habe ja einen account und versuche dann so den captcha zu umgehen ;0)

im zweifelsfall ein browserfenster ansteuern ><

19.04.2008 - 19:16 Uhr

ouch, stimmt wohl - hab bei aller fehlersuche uebersehen, was genau runtergeladen wurde G

Das machts noch interessanter gruebel

Muss man evtl via Post den download der Daten beginnen? Wobei mich das wundern wuerde - wenn ich einen link einfach so eintippe erkennt man ja auch meinen Premiumaccount - was wohl an Cookies liegen duerfte kopfkratz
Ach was hab ich mir da nur wieder fuer ein Programm angefangen ><

19.04.2008 - 16:31 Uhr

Hi,
erstmal danke fuer den netten Src dort oben, so weit klappt der ganz gut.. aber eine Frage habe ich dann doch.. man bekommt ja die 'eigentliche' dateiURL zurueck und koennte doch von da an mit Webclient.DownloadFile arbeiten, oder?
Ich frage, weil es bei mir nicht zu funktionieren scheint - alles, was ich bekomme ist eine 4kb grosse Datei - und nichts anderes.
So sieht bei mir der (leicht gaenderte) code aus:


...
                strCmd = strCmd + "Range: bytes=0-" + framesize + end;
                strCmd = strCmd + "Authorization: Basic " + stringfunctions.Base64_Encode(username + ":" + passwort) + end + end;
                //MessageBox.Show(strCmd);

                host = "http://" + newHost + ".rapidshare.com";
                MessageBox.Show(host + url);


                WebClient Client = new WebClient();
                System.Uri uri = new Uri(host + url);               
                Client.DownloadFile(uri, "test.rar");

Von Hand habe ich browser host + url runterladen koennen - also dort liegt der fehler schonmal nicht.. uebersehe ich da irgendwas?

11.02.2008 - 23:18 Uhr

Werd ich morgen mal versuchen, aber wo setz ich die Mask?

Mask: RXCHAR RXFLAG TXEMPTY CTS DSR RLSD BRK ERR RING RX80FULL

11.02.2008 - 20:02 Uhr

Hi, danke fuer die Tips, und sorry, dass ich mich jetzt erst melde, war die letzte Zeit unterwegs und kaum am Computer..

Die Tips sind zwar gut, aber irgendwie schaff ich es immernoch nicht auf das Device zu schreiben.. Ich versteh leider absolut nicht, wie ich die Parameter von der Initialisierung so hinbekomme, wie im quote gezeigt ><

30.01.2008 - 13:13 Uhr

ah, danke fuer den Tip - kannte die Klasse noch gar nicht und bin durch jahrelanges VB basteln noch OCX vorbelastet in einigen dingen ^^

30.01.2008 - 12:59 Uhr

Sorry, falls ich im falschen Forum haenge, aber kein anderes hat besser gepasst ;0)

Ich hab ein kleineres 'Problem'. Ich habe mit dem Portmon folgende sequenz von einem bestehenden Programm ausgelesen:

0.00000182 LIS.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
0.00000053 LIS.exe IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:70 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
0.00000242 LIS.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:0 Replace:0 XonLimit:256 XoffLimit:256
0.00000045 LIS.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:-1 RM:0 RC:0 WM:100 WC:1000
0.00000254 LIS.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR RXFLAG TXEMPTY CTS DSR RLSD BRK ERR RING RX80FULL

Und habe versucht mit der MSComm.ocx das ganze weitestgehend nachzuschreiben um dann mittels write() methode daten an das Device zu schicken. Was nicht funktionierte, wahrscheinlich, weil ich die initialisierung nicht 100% wie oben hinbekommen habe (Masks haben komplett gefehlt, Xon und Xoff Limits ebenso..)
Kann mir jemand einen Rat geben, wie ich das am besten in C# umsetzen kann?

Danke schonmal

09.11.2007 - 07:38 Uhr

Ah.. Danke. Naja, vielleicht hatte ich mich ein wenig unklar ausgedrueckt - ich wuesste gerne, ob es moeglich ist die kommunikation eines anderen Programmes mitzuloggen, also eines, dessen Source nicht verfuegbar ist.
Bitte jetzt kein Aufschrei ich wuerde was ungesetzliches tun wollen - ich hab hier einen Treiber fuer ein Com Geraet, der aber keine API mitliefert sondern nur ein Dienstprogramm, was zwar seinen Dienst tut, aber langsam in die Jahre gekommen ist und ersetzt werden muesste..

08.11.2007 - 23:57 Uhr

Heya

Ist es moeglich die kommunikation eines Programmes mitzuloggen, dass auf einen Com Port zugreift? Also eine Art proxy fuer den Com?

28.09.2007 - 17:50 Uhr

Oh, danke. Hab das total verpeilt 0o
Geht aber jetzt auch, danke. Die anderen werte machen aber noch immer probleme. Das hier sind die Infos die ich zu den Datentypen bekommen habe, vielleicht beisst sich da irgendwas mit den Datentypen von C#?

BYTE: 8 bit
SHORT: 16 bit
LONG: 32 bit
ULONG: 32 bit
STRING[tlen] tlen * 8 bit
FLOAT Fließkomma

*edit*
Ok, habe ein paar unstimmigkeiten gefunden... passt aber weiterhin alles hinten und vorne nicht hmpf

28.09.2007 - 17:42 Uhr

Hm, weis nicht genau, was du mir damit sagen willst o0
Das ist das einzige, was klappt - bei den folgenden Werten hab ich so meine schwierigkeiten :0(

28.09.2007 - 17:04 Uhr

Ich habe folgende infos:

         SHORT	fileident/dateikennung:  Hex A1 / Dez 161  
        LONG	 computer Seriennummer  
        SHORT	Anzahl   
        SHORT	max Anzahl,auf nächste hundert gerundet (z.B. Anzahl=37, max =100)  
        SHORT	Max. Textlänge: 20  

......

und nun versuche ich es zu lesen und habe dafuer folgende zeilen hingescribbelt:


            LogFileType lf = new LogFileType();

            FileStream fs = new FileStream("Sample.log", FileMode.Open);
            BinaryReader br = new BinaryReader(fs);

            //Header
            lf.fileident = br.ReadByte();
            lf.computer = br.ReadInt32();
            lf.cnt = br.ReadInt16();
            lf.max = br.ReadInt16();
            lf.maxtextlen = br.ReadInt16();
//...
            br.Close();

Ich denke, dass man die lf. Elemente problemlos den Infos zuordnen kann. Meine Frage ist nun, was da falsch laeuft. Fileident klappt noch problemlos, aber schon das naechste wird nicht mehr richtig 'dargestellt' - sprich die Zahl ist wesentlich groesser als das was sein sollte - von den restlichen werten mal gar nicht zu sprechen.
Ich denke, dass das Problem in den Konvertierungen liegt.. aber ich wuesste sonst auch nicht, wie ich zB zwei byte einlese und einen brauchbaren wert herauslese schaem.

Kann mir evtl jemand helfen?

29.08.2007 - 19:49 Uhr

Dein Vorschlag ist auch gut und einfach zu realisieren.. aber mir gings vielmehr darum eine art Interface als Dokuersatz im Quellcode fuer den Script zu haben, damit man weis, auf welche Klassen/Methoden man Zugriff hat.
Darum ging es im endeffekt eigentlich.. aber wie gesagt, eine Doku muesste So oder So mal kommen, also kann ich auch gleich damit anfangen ;0)

29.08.2007 - 19:03 Uhr

Hi Herbivore.
Hatte auch schon an eine derartige Loesung gedacht - aber am liebsten waere mir eine Moeglichkeit bei der ich das Interface bei der Scriptdatei liegen haette...

Naja, die einfachste Moeglichkeit waere es wohl eine Doku zu schreiben... waer schon mehr als beim Vorläufer ;0)

29.08.2007 - 17:04 Uhr

Hi..
Aaaalso ich hol mal was weiter aus.
Mein kleines Projekt kompiliert am Start eine C# Datei und laedt die so gewonnene DLL. Das funktioniert alles bestens. Wenn ich nun auch noch meine Form an die DLL uebergebe kann ich auch methoden meiner Form benutzen - soweit klappt alles bestens.
In meinerm 'Projekt' ist auch ein Interface für die zu kompilierende Datei und nun wuerde ich gerne ein INterface für die Methoden meiner Form haben..
klingt etwas kompliziert denke ich..
Ich versuchs mal mit Codeschnipseln:
Dies ist im 'Hauptprogramm':


namespace RABE
{
	public interface Scripts
	{
        //Methods
		void Init(MainWindow window);
        void Unload();
        void GameTick();
........

Diese Methoden sind in meiner cs Datei drin, die vom Programm kompiliert wird.

Nun braeuchte ich ein Gegenstueck im Script fuers Hauptprogramm
zB


	public interface MainWindow : RABE.MainWindow
	{
		void writeline(string text);
		void exit();
		void resync();

Wenn ich dies nun so in meine Scriptdatei reinpacke kompiliert mein Programm nicht mehr und gibt folgenden Fehler aus:

CS0436: Der Typ RABE.MainWindow in c:\Dokumente...\Temp\9n4vn7q5.0.cs steht in Konflikt mit dem importierten Typ RABE.MainWindow in ...RABE.exe. Der Typ in c:\Dokumente...\9n4vn7q5.0.cs wird verwendet.

Kann ich das irgendwie umgehen?

Hintergrund dazu ist, dass ich den Sourcefile fuer den Script gerne rausgeben wuerde und am liebsten Dazu ein Interface mitgeben wuerde. Ist das so ueberhaupt moeglich?

Hoffe mein Programm ist einigermassen verstaendlich - ich weis, dass ich mich leicht konfus ausdruecke.. (Kommt davon, wenn man irgendwo Norwegen eine Idee hat und sie auf Papier bannt, knapp 2000km in zwei Tagen faehrt es ausprobiert und es nicht klappt ;0))

16.06.2007 - 15:10 Uhr

habs am arbeitsplatz versucht, da klappt das nicht.

16.06.2007 - 09:45 Uhr

Ok, danke das hat schonmal bei normalen Dateien soweit ich das sehen kann funktioniert :0)

Der Arbeitsplatz ist leider immernoch fehlerhaft sortiert.. mal sehen, ob ich da irgendwas zu finden kann

16.06.2007 - 08:40 Uhr

Irgendwas stimmt an meinem WinXP nicht mehr... es ist ein relativ frisches SP2. Das Problem ist, dass die Reihenfolge von Dateien und laufwerken im Commondialog total unsinnig ist... Hier mal als Beispiel mein Arbeitsplatz:

Hat jemand eine idee, was da passiert ist bzw wie ich das wieder gerichtet bekomme? Der Arbeitsplatz ist nicht unbedingt das Problem - aber sucht mal dateien, wenn die Reihenfolge randomisiert ist:

Achja, Rechtsklick -> Sortieren Nach bringt leider nur temporaeren erfolg, nachdem sich der Dialog beendet hat und neu geoeffnet wurde ists wieder ungeordnet...

Danke schon mal im voraus...

11.05.2007 - 23:13 Uhr

Ok, sorry fuers fragen, habs direkt nach dem absenden gefunden - und naja, fuer die es interessiert. Der Defaultwert ist 4 :0D

11.05.2007 - 23:09 Uhr

Aus versehen habe ich mittels SystemParametersInfo meinen SPI_SETDOUBLECLKHEIGHT wert ueberschrieben und schaffe es mittels Trial&Error ihn nicht mehr zufriedenstellend zurueckzusetzen - was bedeutet, dass bei mir Doppelklicken deaktiviert ist.

Waere hier jemand so freundlich mit GetSystemMetrics (SM_CYDOUBLECLK / 37) bei sich den Wert abzufragen und hier den Wert bekanntzugeben? Ich hab nichtmal eine idee, wie der Originalwert aussehen duerfte..

Achja, wie es passiert ist - Bei SystemParameterINfo ist 20 der Wert um den Wallpaper zu aendern... tja, leider hab ich aber danebengetippt...

Danke schonmal im Vorraus

01.01.2007 - 23:25 Uhr

Hi!

Kann mir jemand irgendwie weiterhelfen. Ich versuche mittels C# einen alten GameServer flott zu bekommen.
Das Problem naemlich ist, dass der Code des Servers zT freigegeben wurde, aber die fuer uns wichtigen parts leider nicht. mit der Konsequenz, dass ein paar deppen einen weg gefunden haben den server mit 'FakePlayern' zu flooden - und das ohne, dass wir eine moeglichkeit haetten das am Servercode zu veraendern.
Nach einigem hin und her dachte ich mir den Server anders zu sichern - durch eine art vorgeschalteten Proxy: So saehe das etwa aus:

Client <--> Server (Original)
Client <--> [Proxy -> Server] - wobei Proxy und server auf der selben Machine laegen.

So, das ganze duerfte an sich kein Problem darstellen, aber ich wollte mal rein technisch fragen, ob ich die UDP pakete, die an den server gesendet werden irgendwie abfangen und analysieren kann mit C#, um damit zB festzustellen, ob jemand von einer IP 12 Logins macht oder nicht - und ausserdem die Frage: Ist das ganze projekt ueberhaupt so irgendwie realistisch o_0 (Achja, spiel um das es geht ist Aliens vs Predator 2)

14.06.2006 - 12:29 Uhr

Naja, wie gesagt. Ich habe ein Konsolenprogramm eher mit Windows assoziiert als mit einer Basistechnologie. und du nervst nicht, ich kenne das Problem auch von einem alten Forum in dem ich mal taetig war.

*edit* OK, und weil ihc nicht lesen kann. Sehe gerade, dass da Konsole steht. Sorry fuers falschposten.

14.06.2006 - 12:15 Uhr

Ich koennte jetzt gross ausholen udn ausschweifend darueber reden, dass dank der neuen - Mona? Shell auch unter windows das Konsolenprogrammieren wieder wichtig wird, aber ich denke ich sag einfach: Sorry, habd as mit den basistechnologien (da is der thread doch jetzt?) anders interpretiert. Dachte, dass die Windowsprogrammierung noch am naechsten am Problem lag.

und danke fuer die Loesung ^^