Laden...

Forenbeiträge von Kamikaze Ingesamt 111 Beiträge

24.05.2012 - 10:52 Uhr

Danke, hat funktioniert. Hatte nach irgendwas mit Statusleiste gesucht und war da nicht fündig geworden.

Gruß, Kami

24.05.2012 - 09:50 Uhr

Hi,

ich habe im Moment ein kleines Problem mit VS2008. Musste das gestern neuinstallieren und jetzt fehlt mir plötzlich unten die Leiste in der man immer den Buildfortschritt, Cursorzeile etc. sieht.
Beim Reiter Ansicht hab ich noch nichts gefunden, was mir die Leiste wieder bringt.
Weiß zufällig einer von euch unter welchem Punkt man die Leiste wieder einblenden kann?

Im Anhang ein Bild mit der Leiste in VS2010 und eins von meinem derzeitigen VS2008.
Würde mich freuen wenn ihr mir helfen könnt.

Gruß, Kami

16.05.2011 - 23:26 Uhr

Also bei Freunden verlang ich nie 80 Eur die Stunde.
Bei guten Freunden sinds so 15 Eur/Std für so Hobbyseiten und für kommerzielle Seiten um die 25-30Eur.

Kommt eben immer drauf an wie professionell alles ist.

13.05.2011 - 12:39 Uhr

Was meinst du eigentlich genau mit..

Leider bricht er beim durchlauf der foreach Schleife am Ende des Programms nach maximal 3 durchläufen ab (bei 15k Einträgen) und verlässt die Schleife.

Gibts ne Exception oder verlässt er die Schleife normal?

12.05.2011 - 13:17 Uhr

@herbivore
Das ist mir schon klar.
Es war ja auch nur die Frage ob es theoretisch funktioniert.
Das der Timer eine bessere Wahl ist hätte ich vielleicht noch dazu schreiben sollen.

12.05.2011 - 12:04 Uhr

Das geht nicht nur theoretisch sondern auch praktisch 😉

10.05.2011 - 14:20 Uhr

So, von mir auch mal ein schönes Beispiel aus einem Projekt an der Uni.
Musste echt erst überlegen was das da macht und danach bin ich aus dem lachen nicht mehr raus gekommen.


private void addTowerLevels()
{
	for (int i = 1; i < 5; i++)
	{
		switch (i)
		{
			case 1:
				towerLvlTextures[i] = contentManager.Load<Texture2D>("Gui/towerlvl/1");
				break;
			case 2:
				towerLvlTextures[i] = contentManager.Load<Texture2D>("Gui/towerlvl/2");
				break;
			case 3:
				towerLvlTextures[i] = contentManager.Load<Texture2D>("Gui/towerlvl/3");
				break;
			case 4:
				towerLvlTextures[i] = contentManager.Load<Texture2D>("Gui/towerlvl/4");
				break;
		}
	}
}

Gruß,
Kami

29.05.2009 - 22:33 Uhr


>

Edit: Die Seite ist relativ häufig down, im Falle des Falles bei Google nach "tim heuer silverlight 3 whats new a guide" suchen, und die Version im Cache angucken ...

Echt super die Seite, danke auch nochmal.

29.05.2009 - 10:44 Uhr

Hehe, da hast du wohl recht.
Hab mit Kollegen schon ein paar Wochen eine Lösung über Windows APIs etc. gesucht und leider mussten wir feststellen, dass wir es so nicht umsetzen können.
Bis jetzt bleibt nur der Weg über das Script, was wir ja selber nicht so toll finden, aber da der Weg erstmal funktioniert wollen wir es so als Übergangslösung einsetzen, bis wir einen besseren Weg gefunden haben.

Soviel dazu. Falls noch wem etwas zu meiner Frage oben einfällt würde ich mich sehr über eine Antwort freuen. Muss ja nichts 100%iges sein. Ansätze sind auch ok.

28.05.2009 - 14:46 Uhr

Hab im Moment ein kleines Problem und wollte mir mal ein paar Ideen dazu von euch einholen.

Hab eine Anwendung die etwas im Windows Mobile 5.0 einstellen soll.
Das mache ich im Moment einfach per Mausposition und klicken.
Jetzt möchte ich aber, dass der Benutzer in der Zeit nicht selbst Eingaben tätigt.
Also war meine Idee folgendermaßen.

+Script wird gestartet
+Maus klickt auf die gewünschte Position
+Maus und Tastatur werden gesperrt bis z.B. das Fenster im WM5.0 geöffnet wurde
+Maus und Tastatur werden kurzzeitig wieder freigegeben, damit das Script die nächste Operation ausführen kann
+Nach dem klick werden sofort wieder alle Eingabe gesperrt

Dies darf natürlich nicht auf meine Anwendung begrenzt sein, sondern muss global funktionieren, da ich mich ja garnicht auf einer Form meiner Anwendung befinde.

Vielleicht hat ja einer von euch ne Idee wo ich da ansetzen könnte.
Danke schonmal im Voraus.

Grüße,

Kami

08.04.2008 - 12:18 Uhr

Hi,

Ich hab im Moment Probleme beim aufrufen von Methoden eines Webservice.
Dieser ist leider nicht von mir geschrieben.
Ich konnte den Webservice ohne Probleme in mein Projekt einbinden.
Sobald ich aber eine Methode aufrufe bekomme ich eine WebException, dass die Http Version des Clients nicht vom Server supported wird.
Hier nochmal die Details

Wie löse ich dieses Problem.
Kann man die Client Http Version einstellen, muss ich mich an den Programmierer des Webservice wenden oder bin ich auf dem völlig falschen Weg?^^

Edit:
Habe jetzt noch ein wenig nachgeforscht.
Der Webservice ist ein J2EE Webservice auf einem JBOSS.
Hab mehrere Beiträge im Internet gefunden wo es Probleme mit der Authentification gab. Habe also einfach mal bei den NetworkCredential einen falschen Usernamen und Passwort angegeben. Trotzdem kommt keine Fehlermeldung zurück das die eingegebenen Daten falsch sind, sondern immernoch der gleiche Fehler.

My problem was not the HTTP version. My application hadn't send the state header with the Authorization.

But I solved this problem in the same way like you: .NET needs a 401 status code to send the header Authorization: Basic YW5vbnltb3VzOmFub255bW91cw== but the Java server with Axis returns a 500 status code. In this case .NET doesn't send the authorization. Therefore I have to override the GetWebRequest method of the proxy class and add the state header.

Könnte also irgendwie damit zusammenhängen.
Falls euch irgendwas einfällt würde ich mich sehr über eure Meinungen freuen.

Danke schonmal für eure Antworten.

Grüße,

Kami

07.12.2007 - 15:21 Uhr

Prozesse erzeugen ist wirklich nicht schwer. Das bekommste auch als Anfänger hin.
Falls du aber noch ne Andere Methode suchst um Netzlaufwerke zu verbinden gibts da noch die Methode "WNetAddConnection3".
Hier nochmal n Link wie man das dann einbinden sollte.
WNetAddConnection3
Bei MSDN findest du auch nochmal genauere Infos zu der Funktion.
Brauchst du dir aber nur anschauen wenn du dich da noch mehr Informieren willst, ansonsten ists vllt etwas zuviel wenn du gerade erst Anfängst^^

04.10.2007 - 13:45 Uhr

Danke! Genau das wollte ich wissen! 😁

04.10.2007 - 11:23 Uhr

Vermutlich eigentlich total einfache Frage. Wie kann ich ein Type Objekt erstellen ohne davon extra eine Instanz anzulegen?
In Java sähe das so aus


Type type = MyClass.class;

Aber wie mache ich das in C#?


    // so geht es zwar, aber ist doof, da ich die Objektinstanz 
    // nur zum Typermitteln anlegen muss
    MyClass myObj = new MyClass();
    Type type = myObj.GetType();

Vielen Dank für die Beantwortung so einer Newbie-Frage.

08.08.2007 - 22:14 Uhr

Das mit dem Tab wollte ich nicht machen. Hab schon gesehen das ein paar mal der Tab fehlt und dann nur ein paar Leerzeichen sind.
Ich werds mal mit Regex ausprobieren.
Danke schonmal.

08.08.2007 - 21:42 Uhr

Hi Leute.
Ich bräuchte mal kurz eure Hilfe.
Irgendwie komme ich gerade nicht weiter.
Ich hab da so riesengroße Textdateien die ich in eine Exceltabelle umwandeln will.
Das rein schreiben ist kein Problem, nur das analysieren der Textdatei macht mir etwas Sorgen.
Hier mal ein kleiner Ausschnitt


Standardanalyse Kostenstelle    Pav.2/3B
Anzahl Material: 13
Material	Abgangsmenge	BB	Abgangswert BB		Gesamtvbr		

Gesamtvbrwert	
Summe			1.866,000	x xx	881,01	EUR	1.866,000	XXX	881,01	EUR
Geschirrspülm Masc	30	L	74,49	EUR	30	L	74,49	EUR
Regeneriersalz		30,000	KG	14,26	EUR	30,000	KG	14,26	EUR
Papiertaschentüche	10-	PK	3,46-	EUR	10-	PK	3,46-	EUR
Reinigungsschwamm	144	ST	12,82	EUR	144	ST	12,82	EUR

Also ich will einfach jede Line einlesen und ab der Line wo am Anfang "Summe" steht kommen die eigentlichen Daten.
Jetzt möchte ich die Bereiche da Aufteilen weil die immer gleich sind.

Bezeichnung,Anzahl,Einheit,Betrag,Währung,Anzahl,Einheit,Betrag,Währung

Aber ich weiß nicht wie ich das vernüftig splitten kann. Es sind meistens mehr als 2 Leerzeichen zwischen den einzelnen Daten, darum dachte splitte es einfach da, trimme sie dann und kann damit arbeiten.Kann ja auch alles string bleiben.
So würde ich es auch jetzt erstmal machen. Wollte nur fragen ob ihr da eine bessere Idee habt.

Würde mich sehr über ein paar anregungen freuen.

mfg Kami

19.07.2007 - 11:08 Uhr

Hi herbivore.

Danke für deine Antwort.
Leider werden die angegeben Methoden nicht vom CF unterstützt, was mich eigentlich sehr wundert^^

Es gibt nur die Methode "SelectNextControl"


public bool SelectNextControl (
	Control ctl,
	bool forward,
	bool tabStopOnly,
	bool nested,
	bool wrap
)

Die hab ich jetzt mal ausprobiert.
Hat ein wenig gedauert bis es richtig funktioniert hat, aber jetzt gehts.
Hab ganz einfach im ClickEvent vom Zurück-Button gemacht.


private void buttonHide_Click(object sender, EventArgs e)
{
    this.SelectNextControl(buttonHide, false, true, true, false);
    Hide();            
}

Ich weiß nicht ob man das noch irgendwie verbessern kann, wenn ja, meldet euch einfach^^

mfg Kami

19.07.2007 - 10:05 Uhr

Ich hab da ein ganz kleines Problem und hoffe ihr könnt mir weiterhelfen.

Erstmal eine kleine Beschreibung was ich vor habe.
Also ich entwickel gerade eine kleine Applikation für ein WinCE 5.0 Gerät und CF 2.0, aber ihr könnt auch gerne Lösungen posten wo ihr nicht sicher seid das es im CF funktioniert.

So zu meinem Problem.
Ich bin in einem Menü. Wenn ich jetzt in das fenster zum Barcode einscannen gehe muss die Textbox im Focus sein (also man muss den blinkenden Cursor sehen).
Wenn man nämlich mit dem Gerät einen Barcode einscannt wird der automatisch dort eingetragen wenn eine Textbox angewählt ist.
Das funktioniert genau 1mal, weil wenn ich auf den Zurück-Button gehe (Hide()) und danach wieder zum scannen, hat komischerweise immernoch der Zurück-Button den focus(ist fett umrandet), obwohl ich im activate eigentlich


textBoxBarcode.Focus();

stehen habe.
Hab auch schon ganz viele andere Sachen ausprobiert alla


textBoxBarcode.Select(0, 1);
textBoxBarcode.ScrollToCaret();
textBoxBarcode.Refresh();
textBoxBarcode.Update();
textBoxBarcode.Focus();

aber irgendwie will nichts funktionieren.

Hätte jemand eine Idee wie ich das hinbekommen könnte?
Würde mich sehr über Antworten freuen. Wie schon gesagt, ist erstmal egal obs das im CF gibt, hauptsache ich hab n Lösungsansatz.

mfg

Kami

04.06.2007 - 14:49 Uhr

Danke herbivore, funktioniert.
Also war das Problem das ein anderes Element des Forms den Focus hatte und es darum nicht auf das Event angesprungen ist.

04.06.2007 - 14:37 Uhr

Hi.
Ich habe ein sehr merkwürdiges Problem mit dem KeyEvent.
Also ich hab ein FormBase von dem alle anderen Forms erben.
Das hat 2 Panels, jeweils oben und unten und dort drin befinden sich Labels für gewisse Statusanzeigen die eben in jedem Form vorhanden sein sollen, z.b. Zeit, Datum etc.
So, jetzt brauch ich bei einem der Forms auch ein Keyevent, das ist ja eigentlich nicht das Problem, aber es wird leider nie ausgelöst, was mich vermuten lässt, dass das Form ,was momentan angezeigt wird, garnicht den Focus hat.
Jetzt hab ich zum Testen mal ein anderes leeres Form mit eingebunden was eben nicht vom Hauptform erbt und da funktionieren die Keys.
Woran liegt das?
Bekommt das Panel indem die Zeit auf dem Label im Panel upgedated wird den Focus?
Ich hab das Keyevent auch einfach mal in mein Hauptform gelegt aber dort passiert dann ebenfalls nichts wenn ich die Taste drücke.
Das Hauptform hat ein paar Timer mit denen die Informationen dann upgatedet werden.
Ich weiss echt nicht mehr weiter.
Hat irgendwer eine Idee?

mfg Kami

31.05.2007 - 13:59 Uhr

Da bin ich auch schon wieder.
Hab mir jetzt mal eben selber eine Lösung gemacht mit der ich leben kann.
Hatte auch noch vergessen was zu erwähnen.
Also die kopierte Datei wird vom PPC bloß gelesen und nicht geschrieben.
Darum sind die SchreibZeiten beider Dateien gleich solange sich auf dem Server nichts an der Datei ändert.
Ich werde es also jetzt erstmal so machen.
Bsp.:


DateTime dtSource = File.GetLastWriteTime(sourcePath);
DateTime dtDest = File.GetLastWriteTime(destPath);

bool equal = dtSource.Equals(dtDest);

MessageBox.Show(equal.ToString());

Und sobald sich die Zeiten unterscheide kopiere ich.
Sollte es noch eine bessere Lösung geben bin ich dafür immer offen.

mfg

Kami

31.05.2007 - 13:23 Uhr

Ich hab da ein kleines Problem.
Bissel zum Hintergrund.
Ich hab eine GSM Verbindung zwischen einem Pocket PC und einem Rechner.
Durch die GSM Verbindung ist der PPC und der Rechner im gleichen Netzkwerk und ich kann vom PPC aus Daten vom Rechner ziehen.
Jetzt zum wichtigen Teil.
Bevor ich nun eine Datei vom Rechner kopiere möchte ich wissen ob das überhaupt notwendig um keinen unnötigen Traffic zu erzeugen.
Also sollte es die gleiche Datei auf beiden Systemen geben, wie vergleiche ich diese ohne die Leitung zu stark zu beanspruchen.
Sobald die beiden Dateien verschieden sind wird die Datei auf dem PPC dann von der Datei des Rechners überschrieben.
Ich schätze mal wenn ich eine Checksumme bilde muss die gleiche Datenmenge übertragen werden, bzw. das doppelte, einmal zum vergleichen und falls benötigt nochmal die Datei.
Sonst wäre ich einfach noch nach der Größe der Dateien gegangen, oder gibt es andere bessere Lösungen?
Würde mich sehr über ein paar Ideen freuen.

mfg Kami

16.05.2007 - 15:05 Uhr

Ist zwar schon eine ganze Weile her, aber wollte dann doch mal endlich die Lösung posten wie ich es gemacht habe.
Diese Klasse meldet sich mit Netzwerkpfad, Username und Passwort an und erzeugt eine art Netzwerklaufwerk. Auf einem WinCE Gerät findet man dann kein Laufwerk sondern einen Ordner mit dem vorher festgelegten Namen.


public class NetworkHelper
    {
        struct NETRESOURCE
        {
            internal int dwScope;
            internal int dwType;
            internal int dwDisplayType;
            internal int dwUsage;
            internal string LocalName;
            internal string RemoteName;
            internal string Comment;
            internal string Provider;
        }

        unsafe internal struct UnmanagedNETRESOURCEA
        {
            internal int scope;
            internal int type;
            internal int displayType;
            internal int usage;
            internal char* lpLocalName;
            internal char* lpRemoteName;
            internal char* lpComment;
            internal char* lpProvider;
        }

        [DllImport("Coredll.dll", CharSet = CharSet.Auto)]
        private static extern int WNetAddConnection3(IntPtr hWndOwner,
            ref UnmanagedNETRESOURCEA lpNetResource, string lpPassword,
            string lpUserName, int dwFlags);

        [DllImport("Coredll.dll", CharSet = CharSet.Auto)]
        private static extern int WNetCancelConnection2(string lpName,
            Int32 dwFlags, bool bForce);

        public int AddConnection(string remoteName,string localName, string userName, string password)
        {
            const int RESOURCETYPE_ANY = 0x0;
            NETRESOURCE ConnInf = new NETRESOURCE();

            ConnInf.dwType = RESOURCETYPE_ANY;
            ConnInf.RemoteName = remoteName;
            ConnInf.LocalName = localName;

            char[] localNameBuffer = MarshalHelper(ConnInf.LocalName);
            char[] remoteNameBuffer = MarshalHelper(ConnInf.RemoteName);
            char[] commentBuffer = MarshalHelper(ConnInf.Comment);
            char[] providerBuffer = MarshalHelper(ConnInf.Provider);

            UnmanagedNETRESOURCEA ConnInfUnmanaged = new UnmanagedNETRESOURCEA();
            int res = 0;

            unsafe
            {
                fixed (char* pLocalName = localNameBuffer, pRemoteName = remoteNameBuffer, pComment = commentBuffer, pProvider = providerBuffer)
                {
                    ConnInfUnmanaged.lpLocalName = pLocalName;
                    ConnInfUnmanaged.lpRemoteName = pRemoteName;
                    ConnInfUnmanaged.lpComment = pComment;
                    ConnInfUnmanaged.lpProvider = pProvider;
                    ConnInfUnmanaged.type = ConnInf.dwType;


                    //try
                    //{
                        res = WNetAddConnection3(IntPtr.Zero, ref ConnInfUnmanaged, password, userName, 0);
                        if (res == 85)
                        {
                            ChancelConnection(ConnInf.LocalName);
                            res = WNetAddConnection3(IntPtr.Zero, ref ConnInfUnmanaged, password, userName, 0);
                        }

                        //if ((int)WinAPIErrorCodes.WinAPIErrorCodes.ErrorCode.NO_ERROR != res)
                        //{
                        //    throw new Exception(WinAPIErrorCodes.WinAPIErrorCodes.Interpretation(res));
                        //}

                    //}
                    //catch (Exception ex)
                    //{
                    //    //ErrorLogger.GetInstance().Log( "Credentials: " + ex.Message );
                    //    //throw new Exception(ex.Message);
                    //}

                }
            }
            //TODO: result interpretieren
            return res;
        }

        public int ChancelConnection(string connName)
        {
            int result = WNetCancelConnection2(connName, 0, true);
            return result;
            //TODO: result interpretieren
        }

        private enum Errorcode : int
        {
            NO_ERROR = 0,
            ERROR_ACCESS_DENIED = 5,
            ERROR_ALREADY_ASSIGNED = 85,
            ERROR_BAD_DEVICE = 1200,
            ERROR_BAD_NET_NAME = 67,
            ERROR_BUSY = 170,
            ERROR_CANCELLED = 1223,
            ERROR_DEVICE_ALREADY_REMEMBERED = 1202,
            ERROR_INVALID_PASSWORD = 86,
            ERROR_NO_NET_OR_BAD_PATH = 1203,
            ERROR_NO_NETWORK = 1222
        }

        private char[] MarshalHelper(string s)
        {
            s = s + "\0";
            return s.ToCharArray();
        }
    }

mfg Kami

16.05.2007 - 15:00 Uhr

Ich hab da ein kleines Problem.
Ich brauche ein Label mit Rahmen drum.
Leider bietet das Label unter CF2.0 diese Eigenschaft nicht.
Ist es wohl möglich sich ein eigenes Label zu machen welches dann diese Eigenschaft hat?
Hab mir leider noch kein eigenes Control gemacht, darum weiss ich nicht wie ich das realisieren soll.
Würde mich sehr freuen wenn ihr mir da etwas helfen könntet.

Grüße,

Kami

14.03.2007 - 16:00 Uhr

Werd ich auf jeden Fall ausprobieren bevor ich meinen Weg versuche.
Wäre mir natürlich viel lieber wenn es gleich mit der Classe funktioniert.
Danke nochmals für die Hilfe.
Wenns Neuigkeiten und ne Lösung gibt werde ich die natürlich hier posten.

mfg Kami

14.03.2007 - 12:46 Uhr

Das funktioniert leider alles nicht, weil ich bei dem PixelFormat nur bis "Format16bppRgb555" runter gehen kann und beim Speichern wird trotzdem einfach 24Bit genommen. Also versuche ich jetzt mal n anderen Ansatz.

Wenn ich mir das Bitmap als Byte Array hole und dann jeweils bloß den einzelnen Pixel von weiß in schwarz ändern und das Byte Array nachher wieder als BMP speicher, dann dürfte sich ja beim Bitwert nichts ändern.
Müsste ich nur mal rausfinden wie so ein File ausschaut, also wie weit der Header geht und wo die Pixel anfangen. Wenn jemand da etwas weiss könnt ihr ja posten. Ich versuchs jetzt erstmal selber rauszufinden.
Danke schonmal für eure Hilfe.

mfg Kami

14.03.2007 - 09:56 Uhr

Moin,

Ich hab da ein kleines Problem mit einem Bitmap.
Ich benutze eine Picturebox, dieser weise ich ein weißes monochrom Bitmap zu.
Danach kann man auf dieser PictureBox unterschreiben und das Bitmap wieder speichern.
Jetzt hab ich das Problem, dass das Bitmap danach kein monochrom-Bitmap mehr ist, sondern ein 24Bit Bitmap. Dadurch ist die Datei gleich mehr als 10mal größer, was ich auf jeden Fall vermeiden möchte.
Wie kann ich das Bild anschließend wieder als monochrom-Bitmap speichern?

Hier mal der Code wie ich es momentan mache.


//Bild der PictureBox zuweisen
bild = new Bitmap(signature_data_path);
pictureBoxUnterschrift.Image = bild;

//Bild wieder speichern
pictureBoxUnterschrift.Image.Save(path_Unterschrift, System.Drawing.Imaging.ImageFormat.Bmp);

Wichtig ist noch zu sagen das ich unter dem CF 2.0 arbeite.
Sollte euch irgendwas einfallen, auch wenns vllt nicht mit dem CF 2.0 geht, würde ich mich trotzdem freuen wenn ihr es postet, muss ja nur ein Ansatz sein^^

mfg Kami

07.02.2007 - 11:28 Uhr

Danke für den Vorschlag, wurde gleich so eingebunden.
Try Zeug hatte ich vorher etwas komplizierter drin. Hatte mir dann mal das zu dem using durchgelesen, so ist es dann ja noch etwas einfacher.

mfg Kami

07.02.2007 - 09:06 Uhr

Moin.
Danke nochmal ProggiHans.^^
Ich habs jetzt genau so gemacht.
Läuft jetzt einwandfrei.
Was ich noch vergessen hatte. Ich arbeite unterm CF2.0, darum schien das mit dem File.WirteAllBytes() nicht zu funzen.
Hier mal meine Lösung. Wenns da noch Verbesserungsvorschläge gibt einfach nochmal Antworten.


byte[] bytes;            
bytes = fss.receiveFile("", "", "\\\\piks1\\neu", "ListView Beispiel.txt");
            
FileStream stream = new FileStream("test.txt", FileMode.Create);

foreach (byte oneByte in bytes)
{
      stream.WriteByte(oneByte);
}
stream.Close();

Danke nochmal für eure Hilfe.

mfg Kami

06.02.2007 - 20:13 Uhr

Dankeschön nochmal.
Auch wenns so einfach scheint, manchmal findet man eben einfach nicht das wonach man sucht.
So nach dem Motto "Man sieht den Wald vor lauter Bäumen nicht"...^^

06.02.2007 - 16:40 Uhr

Danke schonmal.
Der BinaryWriter möchte ja so einen OutputStream haben.
Wie wandel ich denn mein ByteArray in so einen Stream um und wie bekomm ich das dann über den BinaryWriter in eine Datei rein.
Bei dem Thema hab ich wirklich keinen Plan, hab noch nie so Bytes durch die Gegend geschoben und sie dann wieder in Dateien umgewandelt.
Kleines Codebeispiel wäre sehr Hilfreich.
Danke schonmal im Voraus.

06.02.2007 - 16:19 Uhr

Hi!
Hab im Moment ein kleines Problem.
Also ich bekomme per Webservice eine Datei zugeschickt als byte[];
Dieses möchte ich dann am Client wieder zu einer Datei machen. Ich weiß aber leider nicht wie das funktioniert.
Hatte mir schon ein bisschen was zusammengesucht und ausprobiert.


byte[] bytes;            
bytes = fss.receiveFile("", "", "\\\\Laphroaig\\transfer", "dispo.dat");

MemoryStream newFile = new MemoryStream();
newFile.Write(bytes,0,bytes.Length);

Bin ich da auf dem richtigen Weg?
Wenn ja, wie geht es da weiter das ich mir das File irgendwo abspeichern kann?
Oder muss ich das ganz anders machen?
Würde mich sehr über etwas hilfe freuen.

mfg Kami

30.11.2006 - 14:57 Uhr

Danke schonmal für die Antwort.
Das was ich mir zu Delegates bis jetzt durchgelesen habe hört sich schon ganz gut an. Aber irgenwie konnte ich noch keine richtigen Bezug herstellen. Wie müsste ich denn bei meinem Beispiel so ein Delegate anwenden?

30.11.2006 - 13:59 Uhr

Guten Mittag,
Leider ist mir kein besserer Threattitel eingefallen weil ich selber noch nicht so genau weiß nach was ich suche^^
Also ich hab folgendes Problem.
Ich greife per GSM von einem Client auf einen Server zu. Von dort will ich Daten senden, empfangen und löschen.
Das geht alles vom Client aus.
Problem ist, dass die Verbindung natürlich saumäßig langsam ist.
Wenn ich mich z.B. zum Server verbunden habe kann ich sowas hier nicht machen.

bew1Files = Directory.GetFiles(fromPath);

Dann kommt nämlich eine Exception das es den Pfad nicht gibt, ist natürlich quatsch, denn es gibt ihn.
Also hab ich folgendes gemacht.


if (conn != null)
            {
                bool tryAgain = true;
                int maxTry = 5;

                textBoxInfo.Text = "Verbinde zu Server!!\r\n";
                conn.dial();

                while (tryAgain == true && maxTry != 0)
                {
                    try
                    {
bew1Files = Directory.GetFiles(fromPath);
                        tryAgain = false;
                    }
                    catch (Exception e4)
                    {
                        tryAgain = true;
                        maxTry = maxTry - 1;
                        System.Threading.Thread.Sleep(1000);
                    }
                }
                conn.hangUp();
                textBoxInfo.Text = textBoxInfo.Text + "Verbindung geschlossen!!\r\n";
            }

So, das funktioniert schonmal und auch ganz gut, beim zweiten mal findet er den Ordner mit allen Dateien drin.
Jetzt mach ich ja mehrere Sachen, also Kopieren etc. und das ganze ist schon in einer Funktion drin, da man das ganze auch per LAN machen kann. Da gibt es diese Probleme ja nicht.
Jetzt möchte ich bei allen Befehlen, also z.B. Copy,Delete,GetFiles etc. sowas in die Funktion schreiben, aber das würde alles extrem unübersichtlich machen.
Kann ich mir nicht einfach diese Funktion machen...


maxTryWhile = maxTry;
                while (tryAgain == true && maxTryWhile != 0)
                {
                    try
                    {
                        //Hier Funktion einfügen z.B. Copy...
                        tryAgain = false;
                    }
                    catch (Exception e4)
                    { 
                        tryAgain = true;
                        maxTryWhile = maxTryWhile - 1;
                        System.Threading.Thread.Sleep(1000);
                    }
                }
                tryAgain = true;

an die ich dann das "File.Copy(from,to,true);" übergeben kann und die das dann an die richtige stelle einfügt?
Geht sowas, wenn ja nach was muss da suchen?
Ich hoffe ihr versteht was ich meine.
Wenn ihr Vorschläge habt oder andere Möglichkeiten seht würde ich mich sehr freuen wenn ihr sie postet.

mfg Kami

24.11.2006 - 14:46 Uhr

Danke Herbi. Ist auf jeden Fall ein nettes Tool.
Im Moment steh ich dennoch auf dem Schlauch^^
Ich weiß immer noch nicht wo genau das Probelm liegt.
Also ich hab z.B. ne txt Datei da steht folgendes drin
"Test|ÖöÄäÜüß|Test"
Wie lese ich die jetzt am besten ein?
Ich meine bissher hab ich sie mit UTF7 eingelesen, ist das so richtig?
Wenn ich sie dann wieder mit dem StreamWriter schreibe, auf dem Client, auf was muss ich da achten. Weil bissher liest er sie richtig ein, aber schreibt sie anscheinend falsch. Das ist alles so verwirrend....

Edit:
Das muss wohl irgendwas damit zu tun haben, dass ich die Datei lösche, neu anlege und da dann die Strings wieder reinschreibe, dann ändern sich die äöü usw., da es ja n englisches WinCE hat. Aber wie kann man das ändern?

Edit2:
Ich hab jetzt die Umstände nochmal genau herausgefunden.
1.Datei wird auf Client kopiert.
2. Wird mit "StreamReader sr = new StreamReader(data_path,new System.Text.UTF7Encoding());" auf dem englischen WinCE eingelesen und in Objekten gespeichert.
3. Datei wird gelöscht.
4. Datei wird aus Objekten neu gebildet mit "StreamWriter writer = new StreamWriter(data_path,true);"
5. Wenn ich sie jetzt wieder einlesen will mit "StreamReader sr = new StreamReader(data_path,new System.Text.UTF7Encoding());" werden mir anstelle der äöü usw. andere Zeichen angezeigt. Öffne ich die Datei dann ganz normal über den Texteditor sehe ich die öäü usw. wieder. Was mach ich falsch?

24.11.2006 - 13:50 Uhr

Nein, daran liegt es nicht.
Ich hab gerade nochmal zum Test etwas gebastelt auch wieder mit UTF7 und da sieht man die ÖöÜüAäß wieder richtig.
Der fehler liegt also nicht beim einlesen. Muss vllt beim neuschreiben der Datei passieren.
Ich werd das nochmal genau untersuchen und melde mich nochmal.
Danke schonmal für die Hilfe.

24.11.2006 - 11:42 Uhr

Morgen an alle.
Ich hab da ein kleines Problem. Dieses sieht wie folgt aus.
Ich hab einen Server und n paar Clients.
Diese tauschen nun Dateien aus, lesen sie ein, verändern sie etc...
Jetzt hab ich als Client ein WinCe Gerät mit englischer Sprache.

Ich lese also eine Datei auf dem gerät ein..


StreamReader sr = new StreamReader(file, new System.Text.UTF7Encoding());
...
string line = sr.ReadLine();
string[] items = line.Split('|');
obj.atb1 = items[0];
obj.atb2 = items[1];
//etc.

Wenn in der Datei aber Zeichen wie "äöüß" stehen werden sie nicht richtig eingelesen, dann kommen eben Sonderzeichen o.Ä bei raus.
Wie kann man dem string denn sagen das er deutsch ist?^^
Oder könnte das an noch was anderem liegen?

Wäre schön wenn mir jemand helfen könnte.

mfg Kami

23.11.2006 - 11:44 Uhr

Hi. Erstmal danke für deine Antwort.
Hab ich wenigstens schonmal einen Ansatz.
Leider kann ich regedit auf dem Gerät nicht aufrufen. Gibt es irgendeinen extra Regviewer für WinCE Geräte?
Und ich würde mich über ein kleines Beispiel sehr freuen wie ich Sachen in der Registry änder, das hab ich nämlich noch nie gemacht und ich möchte mir da nicht unbedingt wichtige Sachen zerschießen.

mfg Kami

22.11.2006 - 10:00 Uhr

Morgen an alle.
Ich suche gerade eine Möglichkeit auf einem WinCE 5.0 Gerät die Network ID, also Username, Password und Domain zu ändern, hab aber bis jetzt noch nichts gefunden.
Das ganze kann man unter Owner Properties im Control Panel selber einstellen, aber das will ich ja nicht.^^
Wenn jemand eine Idee hat, oder weiß wo man suchen könnte würde ich mich sehr über eine Antwort freuen.

Danke schonmal.

mfg Kami

10.11.2006 - 08:47 Uhr

Sieht auch gut aus. Werde ich auf jeden Fall mal ausprobieren.
Danke für die Vorschläge.

mfg Kami

09.11.2006 - 15:50 Uhr

Mach ich normalerweise auch. Hatte es nur irgendwie vergessen.

09.11.2006 - 14:55 Uhr

Also ich hatte es ausprobiert und bei mir war es nicht so.
Das mag vllt aber auch daran liegen das das Programm auf einem WinCE Handheld läuft.

09.11.2006 - 14:22 Uhr

Ich hab den Filenamen nicht exakt.
Wie schon gesagt kann der Name was Groß- und Kleinbuchstaben angeht variieren.
Z.b. kann eben am ende mal stehen ".DAT" oder ".dat" oder eben auch an anderen Stellen, wie z.B. der Anfangsbuchstabe mal klein oder groß sein und wenn ich dann einfach so abfrage
if File.Exist(Datei_0001.dat) findet er die datei "datei_0001.dat" nicht obwohl sie ja da ist.

Aber das mit dem string.Format kannte ich nicht, danke dafür ich werds mal ausprobieren.

Edit:
Das string.Format funktioiert einwandfrei. Man lernt ja nie aus. Danke dafür.

mfg Kami

09.11.2006 - 13:12 Uhr

Hallo liebe C#ler
Ich hab eigentlich einfach nur eine Frage ob es eine bessere/einfachere Methode gibt im Gegensatz zu meiner.
Also es soll eine Datei kopiert werden.

Es gibt folgende Dateien.
Datei_0001.dat
Datei_0002.dat
usw.

Der User tippt eine Zahl ein und dann soll genau diese kopiert werden. Ist sie nicht vorhanden passiert nichts.
Ausserdem soll es egal sein ob die Datei groß oder klein geschrieben im Ordner liegt...also könnte sie auch DATEI_0001.DaT heißen.

Ich hab das ganze jetzt so gelöst, hier ein bisschen Beispielcode


public void copyTest(int nr)
        {
            
            string path1 = Path.Combine("test", "copy");
            string path2 = Path.Combine(path1, "folder2");
            path1 = Path.Combine(path1, "folder1");

            string sNr = "0000";
            sNr = sNr + nr.ToString();
            sNr = s.Remove(0, nr.ToString().Length);
            string fileName = @"datei_" + sNr + ".dat";

            Regex regFile = new Regex(fileName, RegexOptions.IgnoreCase);

            string[] allFiles = Directory.GetFiles(path1);

            foreach (string file in allFiles)
            {
                Match matchFile= regFile.Match(file);
                if (matchFile.Success)
                {
                    File.Copy(file, Path.Combine(path2, Path.GetFileName(file)));
                }
            }
        }

Also wenn jemand eine elegantere Lösung kennt bin ich dafür immer offen.

25.10.2006 - 09:34 Uhr

Morgen.
Ich hätte mal eine Frage.
Ich hab eine Clientanwendung. Diese läuft auf mehreren Win CE Geräten mit CF 2.0.
Wenn diese am Netzwerk hängen kopieren sie Daten vom Server.(Sind ganz normal per switch im Netzwerk)
Jetzt hat jeder client eine andere Ini datei inder steht auf welchen Pfad er muss und wie der Usernam sowie das Passwort für diesen Ordner ist.
Bisher wars immer ohne Username und Passwort also einfach File.Copy();
Gibt es eine Möglichkeit beim verbinden auf den Order diese Daten mitanzugeben?
Würde mich sehr über Vorschläge, Stichworte oder Links freuen.

mfg Kami

24.10.2006 - 10:23 Uhr

@ blackcoin
Danke schonmal, werd ich mir auf jeden Fall ansehen.

@ikaros
Ja das wäre auch eine Überlegung von mir gewesen, aber mir gefällt eben nicht das ich dafür erst einen Screeshot speichern und den dann Untersuchen muss. Aber als Lösung werd ich es auf jeden Fall in betracht ziehen.

23.10.2006 - 21:37 Uhr

Nabend.

Ich will in einem bestimmten Fenster nach einer bestimmten Farbe suchen.
Also z.b. hab ich ein Fenster das das Bild von meiner Webcam anzeigt.
Jetzt möchte ich zu einem bestimmten Zeitpunkt schauen ob ich irgendwo in einem bestimmten Bereich eine bestimmte Farbe habe und dann die Position davon gespeichert wird.

Ich hab das ganze schonmal mit AutoIt gemacht da gibts ne ganz einfach Funktion für und ich such eigentlich einfach das gleiche in C#.

Also die Funktion in AutoIt lautet z.B.

$pos = PixelSearch($left, $top, $right, $bottom, $color, $tolerance, $search_step)

Wobei left,top,right und bottom die grenzen sind im Fenster.
Color ist klar und Toleranz kann man angeben wie weit es abweichen darf.
Search step gibt an ob jeder pixel überprüft wird, bei 2 wird nur jeder zweite überprüft.
Zurückgegeben wird die Position wo im Fenster die Farbe gefunden wurde.

Also ich will eigentlich nur mal ein kleines Testprogramm schreiben um zu gucken obs klappt. Wenn ich das Programm starte möchte ich das er automatisch auf das Kamerafenster switcht und dann soll er anfangen zu suchen.
Jemand ne Idee wie ich anfangen könnte und ob sich das realisieren lässt?
Bin für alle Vorschläge offen.

mfg Kami

19.10.2006 - 09:33 Uhr

Morgen an Alle.
Ich muss den Thread nochmal auskramen.
Hätte noch eine Frage. Wie bekomm ich das hin, dass es ihm beim ".DAT" egal ist ob es groß oder klein geschrieben wird?

08.10.2006 - 14:44 Uhr

Erstmal danke für die Informationen. Dann werd ich mich mal da reinstürzen und gucken. Wie gesagt wich will ja nix steuern sondern bloß rausfinden wie laut irgendwas ist um darauf reagieren zu können.

04.10.2006 - 14:54 Uhr

hmm, ok. So viele views aber keine Antwort.
Keiner eine Idee wo ich anfangen könnte?