URL: https://www.overclockers.at/coding-stuff/help-argumentoutofrange-exception-beim-lesen-einer-file_227192/page_1 - zur Vollversion wechseln!
Servus Maenner!
Ich hab' ein dringendes Problem. :>
Gestern habe ich das Config-File eines Programms minimal veraendert und dieses funktioniert seither nicht mehr. (super, gell )
Nun suche ich schon Stunden nach dem Fehler, schaffe es aber nicht und bin mit meinem Latein langsam am Ende...
Das Programm, um welches es geht ist ein kleines Tool, welches Ordner archivieren soll; diese Ordner werden im ini-File deklariert (dieses habe ich auch veraendert...)
Code:#[source Folder];[destination Folder];[days left];[renaming] P:\daten\aus;Y:\ein_aus_archiv\daten\aus;1; P:\daten\ein;Y:\ein_aus_archiv\daten\ein;60;
Code: CSHARPusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Collections; namespace NightArchive.Klassen { class IniReader { private FileInfo iniFile; public IniReader(String iniPath) { this.iniFile = new FileInfo(iniPath); } public CheckDir[] getCheckDirs() { StreamReader sr = new StreamReader(iniFile.FullName); String line; ArrayList result = new ArrayList(); string destDir; while ((line = sr.ReadLine()) != null) { if (line.Substring(0, 1) != "#") { String[] paths = line.Split(';'); if (paths[1].Trim() != "") { //Er zieht den einen Tag nicht ab der eben für das gestriege Datum steht DateTime gestern = DateTime.Now; gestern = gestern.AddDays(-1); destDir = paths[1] + "__" + gestern.ToString("yyyy_MM"); } else destDir = ""; if (paths.Count() == 2) { //String dirName = paths[0].Remove(0,paths[0].LastIndexOf("\\")); result.Add(new CheckDir(paths[0], destDir)); } else if (paths.Count() == 3) { int days; int.TryParse(paths[2].Trim(), out days); result.Add(new CheckDir(paths[0], destDir, days)); } else if (paths.Count() == 4) { int days; int.TryParse(paths[2].Trim(), out days); result.Add(new CheckDir(paths[0], destDir, days, paths[3].Trim())); } } } sr.Close(); return (CheckDir[])result.ToArray(typeof(CheckDir)); } } }
Code:Unbehandelte Ausnahme: System.ArgumentOutOfRangeException: Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen. Parametername: length bei System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) bei System.String.Substring(Int32 startIndex, Int32 length) bei NightArchive.Klassen.IniReader.getCheckDirs() in \\win01\win\NightArchive\NightArchive\Klassen\IniReader.cs:Zeile 29. bei NightArchive.Program.Main(String[] args) in \\win01\win\NightArchive\NightArchive\Program.cs:Zeile 22.
Lösch mal die leere Zeile am Ende des ini-Files.
Ich bin ein Vollhonk; du bist mein Held!
Thx.
Wenn du den Code geschrieben hast, dann muss ich dir leider zustimmen. Grauslichst!
OMG, die übersetzungswütigen Microsofties machen nicht einmal vor Stack Traces halt. Grauslich!
wer im access und excel befehle eindeutscht...Zitat von RingdingOMG, die übersetzungswütigen Microsofties machen nicht einmal vor Stack Traces halt. Grauslich!![]()
Zitat von semteXwer im access und excel befehle eindeutscht...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025