- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
namespace AppendStrinAtBegin
{
class Program
{
static void ProcessDirectory(string path, string fileMask, Action<string> action)
{
Directory.EnumerateFiles(path, fileMask).ToList().ForEach(action);
Directory.EnumerateDirectories(path).ToList().ForEach
(
subDirectory => ProcessDirectory(subDirectory, fileMask, action)
);
}
static void Main(string[] args)
{
Console.WriteLine("Path FileMask AppendedString");
if (args.Length < 3)
return;
var appendedString = args.Skip(2).Aggregate((workingSentence, next) => workingSentence+ " " +next);
ProcessDirectory(args[0], args[1], (file) => ProcessFile(file, appendedString));
Console.WriteLine("Gun done");
}
static void ProcessFile(string file, string appendedStringAtBegin)
{
var fileLines = File.ReadAllLines(file, Encoding.GetEncoding(1251));
var fileResulted = fileLines.ToList();
fileResulted.Insert(0, appendedStringAtBegin);
File.WriteAllLines(file, fileResulted, Encoding.GetEncoding(1251));
}
}
}
Выглядит как небольшая тула на один раз (копирайт там добавить и т.п.)
По-моему, код высокоуровневый и понятный, не такое уж и говно для одноразовой тулы.
>не такое уж и говно
То есть говно есть? А в чем оно?
2. Завязка на конкретную кодировку
3. Зачем было считывать строки и загружать их в память, разве нельзя просто дописать в начало файла?
4. Обработка ошибок на высоте
И как вы себе это представляете?
Гугл молчит. Можно поподробнее?
Спасибо, Роман.
Собственно, нетрудно написать аналогичный вариант, использующий дополнительный временный файл, как предложено ниже.
Я бы ещё попробовал обойтись без дополнительного файла, читатя сразу по два буфера и записывая их с нужным смещением. Не уверен, что это сработает, но если сработает, то можно будет уменьшить вдвое число копирований.
Великолепнейшая идея, да. Это должно быть жёсткого диска головка-friendly.
а всего то нужно не писать говно и использовать правильный алгоритм.
нет на таких Б3-34 (и подобных ПМК) и Speccy.
посадить бы отдельно взятого говнокодера на указанные вещи на год или два, лишив доступа к современной технике, так гляди, и научится экономить шаги\такты и память. И вернемся к красоте, что фотожопы всякие будут весить 100-300К, а не 700М = )
Но для этого необходимо понимать, что делает программа, а это уже сложнее, нежели писать лишь бы работала
Не будут. Сразу урежется большая часть функциональности. Я на это не подписывался.
а еще сравните неро 6 и 11 по соотношению фунуционала и веса
Однако, в данном случае его невозможно использовать прямо, так как запись происходит в тот же самый файл.
школиё набигает :(
ok.
Когда уже в C# добавят ленивый File.ReadAllхХх?
AnimeGovno-_- 12 часов назад # −1
Не. Лези не даст той ленивости которая здесь нужна. Я говорю про
http://govnokod.ru/8234
http://govnokod.ru/8129
Или сам с собой:?
Прозреваю что их усилиями говнокодик ускоренно катится в сраное говно.
Жду не дождусь ЕОТ-тредов.
http://govnokod.ru/8254
Не путал. У меня один акк с разными именами. Это очевидно и я это никак не скрываю. Странно, что до вас это только дошло. SlowPoke.jpg Рекомендую вам сходить к неврологу и проверить мозг на отставание развития.
чего-то недоговаривает ...
fixed
fixed
Это шутка такая?
Походу это и есть алехуй
>>>что делает? и в чем гавнокод?
> ohlol
>>>вы не можете определить что делает? в этом как раз и говнокод.
95%
Типа такого? (не проверял как работает).
А с xargs будет на один процесс больше — сам xargs.