Limite de cadena

Iniciado por Jeezy, 26 Mayo 2018, 05:01 AM

0 Miembros y 1 Visitante están viendo este tema.

Jeezy

Hola estoy haciendo un proyecto en c# y me sale el siguiente error al depurar la logintud combinada de las cadenas de usuario que el programa utiliza (nombre del programa) supera el limite permitido. Intente reducir el uso de literales de cadena

hay alguna forma de cambiar ese limite, usar mas caracteres de lo permitido. Si la hay me podrian ayudar gracias!.

Eleкtro

#1
¿Exactamente que es lo que dices que excede el límite máximo de caracteres permitidos?, ¿un string declarado?, lo dudo puesto que en condiciones normales no tienes por que exceder 2 GB de RAM por un string, ¿el nombre del programa dices?, ¿te refieres al campo "Nombre de ensamblado" en las propiedades del proyecto?, lo dudo también puesto que es ilógico excederlo intencionadamente...

No entiendo cual es el problema que tienes si no das información más concreta.

saludos








Jeezy

Donde puse nombre del programa es el nombre que yo le asigné a mi aplicación
Lo que tengo es un crypter que me genera unos caracteres tipo 1D 4D 5C etc y al pasar el código que mde genera el crypter a c# donde se cuenta el 1D 4D 5C me dice que se excedió el límite de cadena

Si tuviera el pc encendido té mandaba foto del código ando desde el celular

Eleкtro

#3
Ah, ya lo pillo, lo que estás haciendo es declarar un string literal en tiempo de diseño de decenas de miles de lineas o caracteres. bien, ¿por qué lo haces de esa manera?, lo que estás haciendo no es nada óptimo en términos de administración de memoria... ocupar siempre 20-50mb adicionales de RAM por un simple string literal, es una locura. Ese límite del que hablas parece ser implícito: http://source.roslyn.codeplex.com/#Roslyn.Compilers.CSharp.Emit.UnitTests/Emit/EmitErrorTests.cs (linea 329)

Yo en tu lugar añadiría esa cadena de texto en un archivo de texto plano, entonces puedes incluir el archivo como recurso (embedido o no) de tu programa, y simplemente leerías el recurso/cadena de texto cuando lo necesitases... así además de evitar dicho límite, evitas hacer ese mal uso indebido de la memoria de tu programa.

Esa es mi recomendación.

EDITO: si por lo que sea no quieres seguir la recomendación y quieres tenerlo como un string sí o sí, pues como alternativa siempre puedes añadir un recurso de string desde las propiedades de tu proyecto. Así también evitarías dicho límite (lo he comprobado para asegurarme), pero será mejor que añadas el string manualmente en el archivo XML donde se serializan los recursos de tu aplicación (Resources.resx), por que si intentas añadir esas decenas de miles de caracteres desde las propiedades del proyecto... es decir desde la interfaz de visual studio... se te va a colgar la IDE.

Saludos!