Kann ich beliebig viele und beliebig lange Zeichenketten als Parameter beim Aufruf einer C# /.net exe anhängen? Oder gibt es Restriktionen von einer Seite?
Life is a short
Hallo Seikilos,
noch wird es meistens es der Hauptspeicher sein, der die Länge der String begrenzt. Ansonsten ist String.Length ein Int32, was die Länge auf 8GB begrenzt, wobei wegen des intern verwendeten Arrays auch schon bei 2 oder 4GB Schluss sein könnte.
herbivore
Danke für die Info, das hilft mir. Ich hätte vermutet, das Windows da irgendwelche Restriktionen auferlegt.
Life is a short
Hallo Seikilos,
darf ich fragen, was du vorhast?
Mir ist kein sinnvoller Anwendungsfall von übermäßig langen Kommandozeilenparametern (diese meinst du doch, oder?) bekannt.
Wenn du große Mengen an Informationen an dein Programm übergeben möchtest, übergib ihm lieber einen Pfad zu einer Datei, welche die Informationen enthält.
Access muss mit meiner Middleware kommunizieren, diese muss mit Daten gefüttert werden.
Der Access Dev kann mir keine Schnittstelle via Console bieten, weil er diese nicht abfangen kann, ergo muss ich entweder Dateien einlesen, was mehr Arbeit für mich ist, oder alles über Tausend Kommandoparameter lösen.
Es wird also niemand per Hand die Middleware aufrufen, daher ist die Menge an Parametern nicht so schön, aber eher unkritisch
Life is a short
Hallo Seikilos,
axo, du meinst Kommandozeilenparameter. Doch, da gibt es wohl sogar sehr enge Grenzen. Früher waren das sogar nur 256 oder 1024 Zeichen oder so. Keine Ahnung wie das bei Win2k und darüber ist.
herbivore
wenn der eine Datei schreibt, die einen "Parameter" Pro Zeile hat, dann kannsst du die mit File.ReadAllLines() einlesen und hast genau so einen string[] wie wenn du es über Kommandozeilenparameter machst. Das wäre genau eine Zeile.
loop:
btst #6,$bfe001
bne.s loop
rts
Gut, dann bin ich drauf vorbereitet, danke herbivore.
Und danke für den Tipp mit der Datei 0815Coder
Life is a short
.... Kommandozeilenparameter. Doch, da gibt es wohl sogar sehr enge Grenzen. Früher waren das sogar nur 256 oder 1024 Zeichen oder so. Keine Ahnung wie das bei Win2k und darüber ist.
Hier noch ein Link zu MS zu dem Thema:
http://support.microsoft.com/kb/830473
Gruß Jake
Hallo Jake,
danke. Ich habe mal Kernaussage herausgeholt:
Auf Computern mit dem Betriebssystem Microsoft Windows XP oder höher beträgt die maximale Länge der Zeichenfolge, die Sie an der Eingabeaufforderung eingeben können, 8.191 Zeichen. Auf Computern mit dem Betriebssystem Microsoft Windows 2000 oder Windows NT 4.0 beträgt die maximale Länge der Zeichenfolge, die Sie an der Eingabeaufforderung eingeben können, 2.047 Zeichen.
herbivore