Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


FilsystemWatcher

Postades av 2007-04-03 14:47:08 - Niklas Györi, i forum c# (c-sharp), Tråden har 10 Kommentarer och lästs av 574 personer

Har följande problem..
Koden nedan av någon anledning som jag tydligen inte fattat loopar igenom 4ggr?
Varför gör den det? Även om filen som läses innehåller bara 1 rad.

private void DoLabel(object sender, FileSystemEventArgs e)
        {
            string filename = "C:\\pickup1\\jojo.dat";
            string line;
            string[] myArr;

            using (TextReader tx = new StreamReader(filename, System.Text.Encoding.Default, false))
            {
                while ((line = tx.ReadLine()) != null)
                {
                    line = line.Replace('\"', ' ');
                    myArr = line.Split(new Char[] { ',' });
                    if (myArr[0].Trim() == "H")
                    {
                        headerText = myArr[2].ToString();
                        ordernrText = myArr[1].ToString();
                        HeaderLabel.OriginAtMargins = false;
                        HeaderLabel.PrinterSettings.Copies = 1;
                        MessageBox.Show(myArr[0].Trim().ToString(), "HEADER", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        //HeaderLabel.Print();
                    }
                    else
                    {
                        picturePath = "C:\\Pictures\\" + myArr[6].Replace(" ", "") + ".gif";
                        slrText = myArr[5].ToString();
                        benamning = myArr[3].TrimStart().ToString();
                        JokerEtikett.OriginAtMargins = false;
                        JokerEtikett.PrinterSettings.Copies = 1;
//                        JokerEtikett.Print();
MessageBox.Show(myArr[5].Trim().ToString(), "LABEL", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);


                    }

                }
                tx.Close();
                tx.Dispose();
               
            }
           
                toolStripStatusLabel1.Text = "Senaste körning: " + GetTime();
        }


Svara

Sv: FilsystemWatcher

Postades av 2007-04-03 14:52:23 - Johan Jonsson

Loopar den 4 gånger i while eller är det så att du typ inte satt nått NotifyFilter så att den går in i denna metod fyra gånger när en file släpps i en katalog?


Svara

Sv:FilsystemWatcher

Postades av 2007-04-03 14:58:39 - Johan Jonsson

Om man kortar ner till:
Om man kortar ned till kod till det som spelar roll:
private void DoLabel()
{
string filename = @"C:\temp\tet.dat";
string line;
string[] myArr;

using (TextReader tx = new StreamReader(filename, System.Text.Encoding.Default, false))
{
while ((line = tx.ReadLine()) != null)
{
line = line.Replace('\"', ' ');
}
tx.Close();
}

Den loopar en gång om filen har en rad. Således går ditt filewatcher event fler gånger eller så är det något strul med din inputfil.


Svara

Sv:FilsystemWatcher

Postades av 2007-04-03 14:59:59 - Niklas Györi

Ja den loopar 4 ggr när en filen skapas i katalogen.

Notify filter är satt till LastWrite.


Svara

Sv: FilsystemWatcher

Postades av 2007-04-03 15:09:47 - Johan Jonsson

Jamen då är koden ovan rätt oväsentlig? Då är det ju hur du gjort din filewatcher som är av intresse?


Svara

Sv:FilsystemWatcher

Postades av 2007-04-03 15:15:06 - Niklas Györi

            this.JojoWatcher.EnableRaisingEvents = true;
            this.JojoWatcher.Filter = "jojo.dat";
            this.JojoWatcher.NotifyFilter = System.IO.NotifyFilters.LastWrite;
            this.JojoWatcher.Path = "C:\\JokerEtikett\\Pickup";
            this.JojoWatcher.SynchronizingObject = this;
            this.JojoWatcher.Changed += new System.IO.FileSystemEventHandler(this.DoLabel);

Ändrade koden ovan
Felet kvarstår dock..

Känns som om det är här det felar..


Svara

Sv: FilsystemWatcher

Postades av 2007-04-04 08:37:10 - Johan Jonsson

Detta är en ren chansning. Fungerar .size bättre notifyfilter?


Svara

Sv:FilsystemWatcher

Postades av 2007-04-04 09:17:33 - Niklas Györi

Nix..

Men jag provade att göra så här:
Skapade en knapp som startar inläsningen av filen. Då går den bara en gång.

Men om jag låter "watchern" starta den så startas den 4 ggr.

Skumt..


Svara

Sv: FilsystemWatcher

Postades av 2007-04-04 09:47:07 - Niklas Györi

Saxat från MSDN:

Common file system operations might raise more than one event. For example, when a file is moved from one directory to another, several OnChanged and some OnCreated and OnDeleted events might be raised. Moving a file is a complex operation that consists of multiple simple operations, therefore raising multiple events. Likewise, some applications (for example, antivirus software) might cause additional file system events that are detected by FileSystemWatcher.



Får kanske komma upp med någon annan lösning... Om inte någon annan har nån bra idé?


Svara

Sv:FilsystemWatcher

Postades av 2007-04-04 10:09:39 - Johan Jonsson

Du kan ha en tråd som kollar med ett visst återkommande intervall och därimellan är sövd.
En annan alternativ lösning kan vara att ha koll på filen som skapas i katalogen och om du redan fixat med denna fil så hoppa över all action och låt enbart eventet gå.


Svara

Sv: FilsystemWatcher

Postades av 2007-04-04 10:55:23 - Niklas Györi

Bytte till en timer och lite annan kodning så löste det sig.

Tack för input iaf.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
664
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies