Сообщение Re[5]: Как в одну строку кода прочитать содержимое файла в м от 07.01.2024 18:59
Изменено 07.01.2024 19:15 rg45
Re[5]: Как в одну строку кода прочитать содержимое файла в м
Здравствуйте, Kluev, Вы писали:
K>Т.е. данный говнокод может легко рыгнуть уже на целочисленном переполнении, не говоря уже о других проблемах озвученных другими собеседниками выше.
Да ты говнокода не видел, походу. Хочешь увидеть говнокод — загляни в реализацию File.ReadAllBytes. Вот где индусятина буйным цветом.
Классная работа ученика школы информационных технологий для умственно отсталых. Зато всё большими буквами, ага. Как до сих пор на картинки не перешли, удивляюсь.
K>Т.е. данный говнокод может легко рыгнуть уже на целочисленном переполнении, не говоря уже о других проблемах озвученных другими собеседниками выше.
Да ты говнокода не видел, походу. Хочешь увидеть говнокод — загляни в реализацию File.ReadAllBytes. Вот где индусятина буйным цветом.
public static byte[] ReadAllBytes(string path)
{
if (1 == 0)
{
}
FileOptions options = FileOptions.SequentialScan;
using SafeFileHandle safeFileHandle = OpenHandle(path, FileMode.Open, FileAccess.Read, FileShare.Read, options, 0L);
long num = 0L;
if (safeFileHandle.CanSeek && (num = safeFileHandle.GetFileLength()) > 2147483591)
{
throw new IOException(SR.IO_FileTooLong2GB);
}
if (num == 0L)
{
return ReadAllBytesUnknownLength(safeFileHandle);
}
int num2 = 0;
int num3 = (int)num;
byte[] array = new byte[num3];
while (num3 > 0)
{
int num4 = RandomAccess.ReadAtOffset(safeFileHandle, array.AsSpan(num2, num3), num2);
if (num4 == 0)
{
ThrowHelper.ThrowEndOfFileException();
}
num2 += num4;
num3 -= num4;
}
return array;
}
Классная работа ученика школы информационных технологий для умственно отсталых. Зато всё большими буквами, ага. Как до сих пор на картинки не перешли, удивляюсь.
Re[5]: Как в одну строку кода прочитать содержимое файла в м
Здравствуйте, Kluev, Вы писали:
K>Т.е. данный говнокод может легко рыгнуть уже на целочисленном переполнении, не говоря уже о других проблемах озвученных другими собеседниками выше.
Да ты говнокода не видел, походу. Хочешь увидеть говнокод — загляни в реализацию File.ReadAllBytes. Вот где индусятина буйным цветом.
Классная работа ученика школы информационных технологий для умственно отсталых. Зато всё большими буквами, ага. Как до сих пор на картинки не перешли, удивляюсь.
K>Т.е. данный говнокод может легко рыгнуть уже на целочисленном переполнении, не говоря уже о других проблемах озвученных другими собеседниками выше.
Да ты говнокода не видел, походу. Хочешь увидеть говнокод — загляни в реализацию File.ReadAllBytes. Вот где индусятина буйным цветом.
public static byte[] ReadAllBytes(string path)
{
if (1 == 0)
{
}
FileOptions options = FileOptions.SequentialScan;
using SafeFileHandle safeFileHandle = OpenHandle(path, FileMode.Open, FileAccess.Read, FileShare.Read, options, 0L);
long num = 0L;
if (safeFileHandle.CanSeek && (num = safeFileHandle.GetFileLength()) > 2147483591)
{
throw new IOException(SR.IO_FileTooLong2GB);
}
if (num == 0L)
{
return ReadAllBytesUnknownLength(safeFileHandle);
}
int num2 = 0;
int num3 = (int)num;
byte[] array = new byte[num3];
while (num3 > 0)
{
int num4 = RandomAccess.ReadAtOffset(safeFileHandle, array.AsSpan(num2, num3), num2);
if (num4 == 0)
{
ThrowHelper.ThrowEndOfFileException();
}
num2 += num4;
num3 -= num4;
}
return array;
}
private static byte[] ReadAllBytesUnknownLength(SafeFileHandle sfh)
{
byte[] array = null;
Span<byte> span = stackalloc byte[512];
try
{
int num = 0;
while (true)
{
if (num == span.Length)
{
uint num2 = (uint)(span.Length * 2);
if ((long)num2 > 2147483591L)
{
num2 = (uint)Math.Max(2147483591, span.Length + 1);
}
byte[] array2 = ArrayPool<byte>.Shared.Rent((int)num2);
span.CopyTo(array2);
byte[] array3 = array;
span = (array = array2);
if (array3 != null)
{
ArrayPool<byte>.Shared.Return(array3);
}
}
int num3 = RandomAccess.ReadAtOffset(sfh, span.Slice(num), num);
if (num3 == 0)
{
break;
}
num += num3;
}
return span.Slice(0, num).ToArray();
}
finally
{
if (array != null)
{
ArrayPool<byte>.Shared.Return(array);
}
}
}
Классная работа ученика школы информационных технологий для умственно отсталых. Зато всё большими буквами, ага. Как до сих пор на картинки не перешли, удивляюсь.