Autor Beitrag
matze0504
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 28.01.10 16:56 
Servus,

ich habe hier ein riesen Problem. (Für mich zumindest) :(

Ich bin im Programmieren eine totale Niete! Jedoch habe ich bei uns in der Feuerwehr nun ein Programm bekommen, das ich erweitern soll. Ich habe mich nun schon seit 4 Wochen damit auseinander gesetzt. Jedoch komme ich nicht wirklich dahinter, was da abläuft bzw. wie ich es erweitern kann.

Kann mir jemand helfen?

Es ist so. Bei uns kommt bei einem Einsatz ein Fax an. Dies wird derzeit ausgewertet und in eine Datenbank gespeichert. Das läuft auch alles wunderbar. Nur soll die Auswertung des Faxes nun erweitert werden. Hier ist mal ein Teil des derzeitigen Codes:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
public Einsatz ParseEinsatz(string file)
        {
            Einsatz einsatz = new Einsatz();
            string str = string.Empty;
            bool flag = true;
            int num = 0;
            while (flag)
            {
                flag = false;
                num++;
                try
                {
                    StreamReader reader = new StreamReader(file);
                    while ((str = reader.ReadLine()) != null)
                    {
                        int index = str.IndexOf(':');                        
 
                        if (index != -1)
                        {
                            string str3 = str.Substring(0, index);
                            string str2 = str.Substring(index + 1).Trim();
                            if (this.replaceList != null)
                            {
                                foreach (ReplaceString str4 in this.replaceList)
                                {
                                    str2 = str2.Replace(str4.OldString, str4.NewString);
                                }
                            }
                            switch (str3.Trim().ToUpperInvariant())
                            {
                                case "E — NR":
                                    einsatz.Einsatznr = str2;
                                    break;
                                case "MITTEILER":
                                    einsatz.Mitteiler = str2;
                                    break;
                                case "EINSATZORT":
                                    einsatz.Einsatzort = str2;
                                    break;
                                case "STRA\x00dfE":
                                case "STRABE":
                                    einsatz.Strasse = str2;
                                    break;
                                case "KREUZUNG":
                                    einsatz.Kreuzung = str2;
                                    break;
                                case "ORTSTEIL/ORT":
                                    einsatz.Ort = str2;
                                    break;
                                case "OBJEKT":
                                case "9BJEKT":
                                    einsatz.Objekt = str2;
                                    break;
                                case "MELDEBILD":
                                    einsatz.Meldebild = str2;
                                    break;
 
                                case "HINWEIS":
                                    einsatz.Hinweis = str2;
                                    break;
                                case "EINSATZSTICHWORT":
                                    einsatz.Einsatzstichwort = str2;
                                    break;
                                case "EINSATZPLAN":
                                    einsatz.Einsatzplan = str2;
                                    break;
 
 
 
                               }
 
                        }
 
 
                    }
                    reader.Close();
                    continue;
                }
                catch (FileNotFoundException exception)
                {
                    if (num < 10)
                    {
                        flag = true;
                        Thread.Sleep(0x3e8);
                        this.logger.WriteWarning("Ocr file not found. Try " + num.ToString(CultureInfo.InvariantCulture) + " of 10!");
                    }
                    else
                    {
                        this.logger.WriteError("Ocr File not found! " + exception.ToString());
                    }
                    continue;
                }
                catch (Exception exception2)
                {
                    this.logger.WriteError(exception2.ToString());
                    continue;
                }
            }
            return einsatz;

Danke.

Gruß

Matze

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Einloggen, um Attachments anzusehen!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 28.01.10 16:58 
Hallo und :welcome:!

Was ist denn jetzt genau Dein Problem bzw. was erwartest Du von uns? :gruebel: :nixweiss:

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
matze0504 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 28.01.10 17:03 
Oh mann sorry. Das hätte man ja auch dazu schreiben sollen. ;-)

Die Auswertung des Faxes geht derzeit bis Einsatzplan. Ich würde aber gerne die alarmierten Fahrzeuge auch noch in die Datenbank übernehmen um diese dann am Bildschirm anzeigen zu können. Jedoch scheint es mir, das nur Zeilen ausgewertet werden, wo ein : nach dem Wort steht und das ist ja bei den Fahrzeugen nicht so.

Gruß

Matthias
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 28.01.10 17:10 
Das File welches eingelesen wird ist doch nicht das Tif aus dem Archiv oder?

Die Frage ist wie das File welches du Einließt aussieht. Falls dieses noch mehr Infos hat, kannst du dein Einsatz-Objekt erweitern und die dann wiederum da reinschreiben. Die Datenbank müsstest du ggf. auch Erweitern. KOmmt halt drauf an wie die Struktur aussieht.

Aber fürs erste wäre es wichtig, wie dein EIngabedatei aussieht.

Gruß Daniel
matze0504 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 28.01.10 17:32 
Also das Fax kommt als Tif an und wir dann als txt mit einer OCR Software umgewandelt.

Ich habe die txt-datei auch mal angehängt.

Darin geht es dann um die Einsatzmittel.

Das Problem ist das dort je nach Einsatz verschiedene und auch mehrer Fahrzeuge drin sind. Also muss man irgendwie nach den richtigen suchen.


Zuletzt bearbeitet von matze0504 am Do 28.01.10 17:39, insgesamt 1-mal bearbeitet
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 28.01.10 17:34 
Ich glaub da wird ein Edit fällig ... das war nicht die txt.
matze0504 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 28.01.10 17:39 
Da haste wohl recht. Kommt davon wenn man mehrere Sachen gleichzeitig macht. Also ein neuer Versuch!
Einloggen, um Attachments anzusehen!
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 28.01.10 19:05 
Hmm.. hässliches Format.

Vlt. kannst kannst du folgendes als Ansatz nehmen:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
            FileInfo fi = new FileInfo(file);

            string[] words = fi.OpenText().ReadToEnd().Replace("\r\n"" ").Replace("E — Nr""E-NR").Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

            Dictionary<stringstring> keyValues = new Dictionary<stringstring>();

            string group = null;
            StringBuilder sb1 = new StringBuilder();
            foreach (var item in words)
            {
                if (item.Contains(':'))
                {
                    if (group != null)
                    {
                        keyValues.Add(group, sb1.ToString());
                        sb1 = new StringBuilder();
                    }

                    group = item.TrimEnd(':');
                }
                else if (item.Equals("(ALARMSCHREIBEN"))
                {
                    keyValues.Add(group, sb1.ToString());
                    break;
                }
                else if (group != null)
                {
                    if (sb1.Length > 0)
                    {
                        sb1.Append(" ");
                    }

                    sb1.Append(item);
                }
            }

            foreach (var item in keyValues)
            {
                Console.WriteLine(string.Format("{0}: {1}", item.Key, item.Value));
            }

Gruß Daniel