Archive for the 'IT' Category

Удаление дублей в больших текстовых файлах.

Сентябрь 29, 2015

Нашел на просторах интернета интересный скрипт, который борется с большим массивом данных текста. А точнее удаляет дубли в ключевых словах. Возможно стоит подправить для работоспобности, но в целом работает шустро и аккуратно. Вот код, нужно засунуть его в бат файл:

/*
@echo off && cls
set WinDirNet=%WinDir%\Microsoft.NET\Framework
IF EXIST "%WinDirNet%\v2.0.50727\csc.exe" set csc="%WinDirNet%\v2.0.50727\csc.exe"
IF EXIST "%WinDirNet%\v3.5\csc.exe" set csc="%WinDirNet%\v3.5\csc.exe"
IF EXIST "%WinDirNet%\v4.0.30319\csc.exe" set csc="%WinDirNet%\v4.0.30319\csc.exe"
%csc% /nologo /out:"%~0.exe" %0
"%~0.exe" %1
del "%~0.exe"
exit
*/

//14 mar 2015 @ 13:29
//metaspamer.blogspot.com

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace spicemustflow_sortcleaner
{
    class Program
    {
        static string GetFilename(string nameWithoutExtension, bool uniq)
        {
            int n = 1;
            string outputFile = string.Empty;
            while (true)
            {
                outputFile = string.Format("{0}_{1}{2}.txt",
                    nameWithoutExtension, uniq ? "uniques" : "duplicates",
                    n > 1 ? n.ToString() : string.Empty);
                if (File.Exists(outputFile)) n++;
                else break;
            }
            return outputFile;
        }

        static void Main(string[] args)
        {
            string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\";
            string[] filelist = null;
            if (args.Length == 0) filelist = Directory.GetFiles(path, "*.txt", SearchOption.TopDirectoryOnly);
            else filelist = args;

            foreach (string filename in filelist)
            {
                Encoding enc = Encoding.Default;
                using (FileStream fs = File.OpenRead(filename))
                {
                    byte[] data = new byte[3];
                    while (fs.Read(data, 0, data.Length) > 0)
                        if (data[0] == 0xef && data[1] == 0xbb && data[2] == 0xbf)
                        {
                            enc = Encoding.UTF8;
                            break;
                        }
                        else
                        {
                            enc = Encoding.GetEncoding(1251);
                            break;
                        }
                }

                Console.Write("loading {0}..\n", filename);
                string[] input = File.ReadAllLines(filename, enc);
                if (input.Length > 0)
                {
                    Console.Write("sorting..\n");
                    Array.Sort(input);
                    List<string> uniques = new List<string>();
                    List<string> duplicates = new List<string>();
                    Console.Write("deleting duplicates..\n");
                    uniques.Add(input[0]);
                    for (int i = 1; i < input.Length; i++)
                        if (input[i] != input[i — 1])
                            uniques.Add(input[i]);
                        else
                            duplicates.Add(input[i]);

                    Console.Write("\nsaving..\n");
                    File.WriteAllLines(path + GetFilename(Path.GetFileNameWithoutExtension(filename), true), uniques.ToArray(), enc);
                    File.WriteAllLines(path + GetFilename(Path.GetFileNameWithoutExtension(filename), false), duplicates.ToArray(), enc);
                    Console.Write("\n\n");
                }
            }
        }
    }
}

 

________________

Технологии совершают прорыв. Теперь макет дома или схему расположения предметов в квартире можно распечатать на принтере. Для этого нужно купить 3д принтер в Москве и нарисовать объемную модель в любом векторном редакторе типа компаса 3д. Результат впечатляет – можно пощупать руками, переместить стены, внести доработки непосредственно в модель.

Реклама

Национальный роуминг отменят в 2014 году

Март 1, 2013

Свершилось, наконец-то в минсвязи сделали решительные шаги к отмене роуминга в стране. Официальная формулировка от пресс-службы звучит так: «В марте 2013г. в закон «О связи» может быть внесена очередная поправка, которая отменит для абонентов крупных операторов национальный роуминг.» Если депутаты, в обход лоббированию сетевых магнатов все-таки одобрят это закон, абоненты сотовых компаний, приехав в другой регион, смогут вести разговоры без наценок за соединение внутри домашней сети. Закон может вступить в силу уже с 1 марта 2014г. Удобство от отключения роуминга получат все абоненты сотовых компаний. Я думаю этот шаг приведет к более сильному проникновении онлайн торговли и мобильного ритейла. Уже сегодня оплата путевок, счетов за квартиру и мобильных услуг для россиян становятся обыденными. И вместе с тем проникновение технологий делают нашу жизнь более удобной!

Программисты и Пользователи

Декабрь 9, 2010

Такие 2 Пэ в ИТ сфере, как 4П в маркетинге или 4Д в брэндинге – вопщем, что только не придумают ради того что придумать. Но не об этом. Вот юзера и вот программеры. В очередной раз выслушиваю пожеления юзера я понял что все-таки старик Гаусс был в чем-то прав (хотя Мандельброт и Талеб считают что не по пацански первый рассуждал):

 

ПрограммистИЮзер

Ну реально ведь. Если человек не шарит – он тебе доверяет, если знает – советует, требует, понимает, проверяет. Если же “да я вот на Дельфи помню делал инсерт в файерберд” или “не ну мы вот можем веб-интерфейс развернуть, вапще вы планируете переходить?” – это жесть. Пользователь имеет право на дотошность, но только наверно когда стремиться к 0 или к бесконечности. Но те яйца что посередине – это жесть.

UPDATE (18.09.2011) — спустя 2 года нашел такую забавную картинку. Случайно совершенно. В точку:

 

 

 

 

 

 

 

 

 

 

 

 

___________________________

Случай в поддержке:

— Смотрите, вы сейчас в одном документе строки удалите, а в другом добавьте

— А как добавить?

— Ну смотрите, право кнопкой мыши на поле нажимаете, в строках, там будет добавить, видите?

— Так ну мне наверно надо документ сначала открыть да?

<<zanaves>>

Программисты и Пользователи

Декабрь 9, 2010

Такие 2 Пэ в ИТ сфере, как 4П в маркетинге или 4Д в брэндинге – вопщем, что только не придумают ради того что придумать. Но не об этом. Вот юзера и вот программеры. В очередной раз выслушиваю пожеления юзера я понял что все-таки старик Гаусс был в чем-то прав (хотя Мандельброт и Талеб считают что не по пацански первый рассуждал):

 

ПрограммистИЮзер

Ну реально ведь. Если человек не шарит – он тебе доверяет, если знает – советует, требует, понимает, проверяет. Если же “да я вот на Дельфи помню делал инсерт в файерберд” или “не ну мы вот можем веб-интерфейс развернуть, вапще вы планируете переходить?” – это жесть. Пользователь имеет право на дотошность, но только наверно когда стремиться к 0 или к бесконечности. Но те яйца что посередине – это жесть.

UPDATE (18.09.2011) — спустя 2 года нашел такую забавную картинку. Случайно совершенно. В точку:

 

 

 

 

 

 

 

 

 

 

 

 

___________________________

Случай в поддержке:

— Смотрите, вы сейчас в одном документе строки удалите, а в другом добавьте

— А как добавить?

— Ну смотрите, право кнопкой мыши на поле нажимаете, в строках, там будет добавить, видите?

— Так ну мне наверно надо документ сначала открыть да?

<<zanaves>>