+129
- 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
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
public void ReadFromFile()
{
LoadIntervals = new TimeIntervals(Color.Black);
StreamReader tReader = null;
tReader = File.OpenText("DefaultIntervals");
string income = null;
while ((income = tReader.ReadLine()) != null)
{
// string income = tReader.ReadLine();
string colorR = null; string colorG = null; string colorB = null; string colorA = null; string interval = null;
int i = 0;
for (i = 4; i < income.Length; i++)
{
if (income[i] != ',')
{
interval += income[i];
}
else { break; }
}
for (int a = i + 10; a < income.Length; a++)
{
if (income[a] != ',')
{
colorA += income[a];
}
else
{
for (int r = a + 4; r < income.Length; r++)
{
if (income[r] != ',')
{
colorR += income[r];
}
else
{
for (int g = r + 4; g < income.Length; g++)
if (income[g] != ',')
{
colorG += income[g];
}
else
{
for (int b = g + 4; b < income.Length; b++)
if (income[b] != ',')
{
if (income[b] != ']')
colorB += income[b];
}
else
{
break;
}
break;
}
break;
}
}
break;
}
}
TimePoint tp = new TimePoint(Convert.ToDouble(interval), Color.FromArgb(Convert.ToInt32(colorA), Color.FromArgb(Convert.ToInt32(colorR), Convert.ToInt32(colorG), Convert.ToInt32(colorB))));
LoadIntervals.Add(tp);
}
tReader.Close();
Intervals = LoadIntervals;
}
Так мы парсим файл конфигов вида. (Формат придуман автором кода)
Int=3,Color [A=223, R=253, G=4, B=38]
Int=10,Color [A=255, R=86, G=86, B=185]
Int=20,Color [A=200, R=255, G=215, B=0]
Int=50,Color [A=200, R=255, G=165, B=0]
Запостил: lomomike,
15 Июня 2011
Bagger288 15.06.2011 15:09 # +1
jenik15 15.06.2011 15:26 # 0
Bagger288 15.06.2011 15:27 # +1
absolut 15.06.2011 16:02 # +2
Lure Of Chaos 15.06.2011 16:10 # +5
даже мой кот
нашел бы подход
совсем наоборот.
вот.
Bagger288 15.06.2011 16:29 # +4
Твой кот не идиот!
Он знает наперёд,
Чем плох тот говнокод!
Вот.
jenik15 15.06.2011 16:33 # +2
читает мануал задом-наперед.
Это и есть котячий подход.
Вот.
Lure Of Chaos 15.06.2011 16:42 # −2
свинячий, дитячий
Voldemort 21.07.2011 09:24 # +1
Voldemort 21.07.2011 09:30 # +1
sayidandrtfm 15.06.2011 17:28 # +4
Кот К.О.
abatishchev 15.06.2011 17:42 # +1
http://www.rubular.com/r/fZJqkh9dRE
Ваш О.К.
sayidandrtfm 15.06.2011 18:30 # +1
gegMOPO4 15.06.2011 19:06 # +2
wvxvw 15.06.2011 17:45 # 0
sayidandrtfm 15.06.2011 18:08 # 0
Int-----A-----R------G-----B
3------223---253----4------38
10-----255---86-----86----185
20-----200---255----215---0
...
/* "-" -- вместо табов, местные в курсе*/
>сколько именно дейсятичных
все, от текущей позиции, до первого разделителя(К.О.)
wvxvw 15.06.2011 18:36 # 0
И это, как вы собираетесь обрабатывать 9034582340980958342309883945703498752304 58732094587230458237049587 числа, капитан?
sayidandrtfm 15.06.2011 19:05 # 0
>903458234098095834230988394570349875230 4 58732094587230458237049587
http://en.wikipedia.org/wiki/Integer_(computer_science)
Значения «на пример» взято _из_математики_ не связанной с конкретной платформой?
Или что-то не до понял?
P.S. '\t' — табуляция, если чё. Выполняет роль разделителя значений и визуального разграничителя при редактировании в рукопашную. Ваш К.О.
wvxvw 15.06.2011 20:10 # 0
sayidandrtfm 15.06.2011 20:39 # 0
Вон оно чё, Кэп. Это ты хитро задумал.
А так: 0x30xE90xFD0x40x26
читать поток порциями по 4-ре.
gegMOPO4 15.06.2011 21:54 # +1
gegMOPO4 15.06.2011 21:56 # +1
wvxvw 15.06.2011 22:10 # +1
gegMOPO4 15.06.2011 22:45 # 0
wvxvw 15.06.2011 23:06 # 0
Если аргументы были не понятны, или недостаточно убедительны, то, можно упростить. Ни один человек, сколько бы он художественных академий ни закончил не в состоянии предствить цвет записаный в виде R=\d+, G=\d+, B=\d+ потому, что в отличие, скажем, от нот, эти значения не соответствуют каким-то реальным цветам / не представляют полный видимый спектр. Это условности компьютерной графики, и они всегда относительны, т.е. зависят от устройства вывода. Таким образом, записав "цвет" в таком виде вы оказываете медвежью услугу пользователю, которому прийдется несколько раз скопировать числа, чтобы в программе, которая может показать цвет, эти числа приобрели какое-то значение. Если бы это было одно число, тогда операций нужно было бы делать меньше. С другой стороны, очень многие программы работающие с графикой предпочитают получать цвета, как одно число, а не набор из чисел (так их удобнее складывать, например).
С еще одной стороны, если вы будете использовать разделители, которые, по моему мнению избыточны, вы увеличите количество слов в алфавите ввода (т.как сейчас у нас есть ограниченный алфавит ввода, и в нем отсутсвуют символы-разделители) таким образом добавив ничем не мотивированые излишества. Это не может позитивно отразится на работе программы-компрессора, т.как чем больше символов в исходном алфавите, тем хуже будет степень сжатия...
bugmenot 15.06.2011 23:31 # +1
именно над этим и работал Хаффман.
wvxvw 15.06.2011 23:47 # 0
bugmenot 16.06.2011 00:14 # +3
wvxvw 16.06.2011 00:21 # 0
bugmenot 16.06.2011 00:30 # 0
мне лень читать стены текста выше, поэтому отмечу, что битоёбство по Хаффману является экстремальной формой байтоёбства, а байтоёбы в 95% случаев не правы.
wvxvw 16.06.2011 07:36 # −1
bugmenot 16.06.2011 07:57 # 0
absolut 16.06.2011 08:15 # +3
а тема, между прочим, про сжатие
Lure Of Chaos 16.06.2011 14:23 # 0
префиксным (p-code) - значит, разделители не нужны
оптимальным - значит, что количество закодированной информации = энтропии, иначе говоря, не является избыточным
gegMOPO4 15.06.2011 23:51 # 0
Пассажи насчёт цветов и нот опускаю (хотя они и не совсем верны, мягко говоря, но зачем нам флейм?).
Вы зачем-то используете «мусорный» префикс #. Да ещё и алфавит увеличиваете буквами от A до F. Это по Хаффману?
Если вы прочитаете следующие главы после Хаффмана, то увидите, что алгоритмы сжатия не ограничиваются Хаффманом уже более 30 лет. Рулят словарные, марковские и т.п. алгоритмы, основанные на предсказании более крупных, чем один символ, последовательностей (а код Хаффмана или арифметическое кодирование потом просто сглаживают углы). Также прочитайте про избыточность и зачем она нужна. Ну и ещё про сложность по Чебышеву.
P.S. К слову сказать, я предпочитаю в конфигурационном файле хранить цвета в формате #XXXXXX. Но совсем не по тем причинам, и это не имеет никакого отношения к данной теме.
bugmenot 15.06.2011 22:33 # 0
Это ж уэб-приматы. Науке неизвестно почему, но они не признают фич протокола HTTP и всегда стремятся изобрести что-то своё.
gegMOPO4 15.06.2011 19:09 # −1
wvxvw 15.06.2011 20:09 # 0
gegMOPO4 15.06.2011 21:33 # +1
Esper 15.06.2011 18:21 # 0
А корешок проблемы-то - вот он.
gegMOPO4 15.06.2011 19:10 # +4
koodeer 15.06.2011 23:36 # +3
absolut 16.06.2011 07:46 # +3
Int=50,Color [A=0, R=255, G=0, B=0]
gg123 27.06.2011 00:24 # +1
lomomike 27.06.2011 18:09 # 0
Voldemort 21.07.2011 09:35 # 0
lomomike 21.07.2011 09:43 # +1
Вы правы: и xml, и csv намного лучше.
На самом деле код уже давно переписан и потерял свою говнистость)
guest8 08.04.2019 20:57 # −999
guest8 09.04.2019 10:58 # −999