Hallo zusammen,
ich habe vor einiger Zeit angefangen C# zu lernen. Jetzt habe ich eine Konsolenanwendung geschrieben, mit der Hilfe eines Bekannten. Hierbei gab es auch Rückschläge aber der Lerneffekt war groß.
Leider habe ich mit Winforms ( Gui ) keine Erfahrung und versuche mir diese anzueignen. Aber manchmal ist man schwer von Begriff oder etwas dösig. Ich hoffe ihr könnt mir etwas helfen und ein paar Tipps zum Anfang geben. Ich weis nicht wie ich meine *.ini in eine Gui umsetzen soll.
Die Konsolenanwendung wird wie folgt aufgerufen :
"FileSearch.exe C:\etc\FileSearch.ini C:\ausgabe\FileSearch.txt" und folgendem Inhalt vonm FileSearch.ini
Filsearch.ini
Quelltext
1: 2: 3: 4:
| # Kommentar path=C:\temp\ mask=*.csv pattern=Suchmich |
Die Anwendung wird mit dem obrigen Aufruf gestartet. Es wird in der Filesearch.ini der Parameter " path " zum Verzeichnis aufgerufern. Dieses Verzeichnis wird auf Dateien ( mask ) mit der Endung*.csv
durchsucht. Jede Datei mit dieser Endung wird auf das Suchwort ( pattern ) " Suchmich " durchsucht. Sobald eine Datei mit dem Suchwort gefunden wurde, wird diese in eine *.txt Datei ( filesearch.txt )
geschrieben ( nur der Dateiname ) .
Dies würde ich gerne in eine C# Gui umsetzen. Anbei ein Bild meiner Gui und der Sourcecode von der Konsolenanwendung.
Ich hoffe auf ein paar Denkanstösse, ich möchte nur etwas Hilfe und keinen completten Code. Vielen Dank
Sourcecode :
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: 100: 101: 102: 103: 104: 105:
| using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using System.IO;
namespace FileSearch { class Program { static int Main(string[] args) { string mask = "*.csv"; string pattern = "SUCHTEXT"; string sourcePath = @"C:\temp\";
FileStream fs; StreamReader reader; string config;
if (args.Length < 2) { Console.WriteLine("usage: FileSearch file.ini output.txt"); return 1; }
try { fs = File.Open(args[0], FileMode.Open, FileAccess.Read, FileShare.Read); reader = new StreamReader(fs); config = reader.ReadToEnd(); reader.Close(); } catch (Exception) { Console.WriteLine("Could not read %s", args[0]); return 2; }
if (config.Length > 0) { string[] lines = config.Split(new char[] { '\n' }); Dictionary<string, string> mysettings = new Dictionary<string, string>(); foreach (string line in lines) { if (! line.StartsWith("#")) { int i = line.IndexOf('='); if (i >= 0) { mysettings.Add( line.Substring(0,i).Trim() , line.Substring(i+1).Trim()); } } }
sourcePath = mysettings["path"]; mask = mysettings["mask"]; pattern = mysettings["pattern"]; }
var matches = Directory.GetFiles(sourcePath, mask, SearchOption.TopDirectoryOnly); string destFile = args[1];
StreamWriter txt; try { txt = new StreamWriter(File.Open(destFile, FileMode.Create, FileAccess.Write, FileShare.None)); } catch (Exception) { Console.WriteLine("Could not write %s", destFile); return 5; }
foreach (string file in matches) { string fileName = Path.GetFileName(file); StreamReader csv; try { csv = new StreamReader(File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)); } catch (Exception) { Console.WriteLine("Could not open %s", file); return 6; }
while (csv.Peek() >= 0) { string line = csv.ReadLine(); if (line.IndexOf(pattern) >= 0) { txt.WriteLine(fileName); break; } }
csv.Close(); }
txt.Close();
return 0; } } } |
Moderiert von
Th69: Code-Tags hinzugefügt
Moderiert von
Th69: C#-Tags hinzugefügt