Перейти к содержанию
АнимеФорум

Рекомендуемые сообщения

  • Администрация
Опубликовано (изменено)
Мм... А чистить-то что?

Есть предположение, моё, что в реестре что-то неправильно записалось.

Программой CCleaner (она не единственная, которая чистить реестр, просто мне больше нравится) чистите реестр.

Пробуете снова запустить игру.

Если не поможет -- попробуйте удалить драйвер согласно вышеприведённой инструкции и поставить игру с драйвером заново.

 

Или может даже лучше сразу удалите драйвер защиты, потом удалите игру и поставьте её заново.

Изменено пользователем Seirei (смотреть историю редактирования)
Опубликовано
Есть предположение, моё, что в реестре что-то неправильно записалось.

Программой CCleaner (она не единственная, которая чистить реестр, просто мне больше нравится) чистите реестр.

Пробуете снова запустить игру.

Если не поможет -- попробуйте удалить драйвер согласно вышеприведённой инструкции и поставить игру с драйвером заново.

Окей. Попробую завтра всё это проделать. Спасибо)

Опубликовано

На ноутбуке вылазит синий экран при работе торрента и причину я знаю. ADMtek ADM8511 USB To Fast Ethernet Converter - что-то вроде USB-сетевой. Разъем для штекера сломался месяца 4 назад, пришлось искать выход из сложившейся ситуации - купил этот агрегат. Драйвер к нему идет только под ХР, а у меня Вин7. Но по ряду причин, просто не могу поменять операционку... Пробовал менять драйвера для этой сетевушки - не помогало. Пробовал менять торрент клиенты, установил BitTorrent - вроде все работало стабильно, пока был чистый. Но недавно стал опять вылетать в BSOD. И проблема возникает ТОЛЬКО при работе торрента, при работе в интеренете все в порядке.

Вот что говорит BlueScreenView:

Спойлер:
==================================================

Dump File : 081910-24039-01.dmp

Crash Time : 19.08.2010 20:44:28

Bug Check String : DRIVER_IRQL_NOT_LESS_OR_EQUAL

Bug Check Code : 0x000000d1

Parameter 1 : 0x00000001

Parameter 2 : 0x00000002

Parameter 3 : 0x00000000

Parameter 4 : 0x967d91b1

Caused By Driver : NET8511.SYS

Caused By Address : NET8511.SYS+11b1

File Description : NET8511 USB To Fast Ethernet Adapter NDIS 5.0 Miniport Driver

Product Name : NET8511 USB To Fast Ethernet Adapter

Company : USB2LAN

File Version : 2.05.2001.0213

Processor : 32-bit

Computer Name :

Full Path : C:\Windows\Minidump\081910-24039-01.dmp

Processors Count : 2

Major Version : 15

Minor Version : 7600

==================================================

 

 

Если у кого-то есть какие-то соображения - поделитесь, пожалуйста. Уже не знаю, что делать...

Опубликовано (изменено)
Raй, поиграйте с настройками торрент-клиента (с параметрами влияющими на нагрузку для адаптера): уменьшите кол-во подключений и т.п., попробуйте поставить ограничение скорости. Может помочь. Изменено пользователем Dvvarf (смотреть историю редактирования)
Опубликовано

Dvvarf, поставил более свежие дрова на сетевую и поменял клиент на BitSpirit. Пока все отлично.

Если проблема вернется - воспользуюсь вашим советом. Спасибо

  • 3 недели спустя...
Опубликовано

Здрасте ^)

 

Долго думал писать или нет -) Я, конечно, понимаю, что ошибся форумом, но все же, раз уж тут у вас такая тема: "Если что-то не работает, но вы не можете понять что.", - а вдруг.. :D Ведь, в конце концов, аниме и линукс - они так похожи -)

 

Может кто-нибудь знает, почему . (точка) в регулярном выражении для sed не совпадает с символами '0xe0' и '0xff' (а может и еще с какими-то)?

 

Вот как я проверял.

 

Для входного файла

	'A' 'A' 0xe0 'B' 'B' 0xff 'C' 'C'

проверяем совпадение с рег. выражениями '.*BB' и '.*CC'. Если . (точка) совпадет с 0xe0 и/или 0xff, то выбрано будет больше, чем "BB" или "CC".

 

Создаем входной файл (может есть способ проще?):

	# echo | sed -e's/^/AA\xe0BB\xffCC/' >|1.tmp 
# cat 1.tmp 
AA?BB?CC

Проверяем совпадение . (точки) с 0xe0 (совпавший участок будет выделен символами '_' (подчеркивание)):

	# sed -e's/.*BB/_&_/' 1.tmp  >|2.tmp
# cat 2.tmp 
AA?_BB_?CC

Т.е '.*' не совпало ни с чем.

 

И то же самое для совпадения . (точки) с 0xff:

	# sed -e's/.*CC/_&_/' 1.tmp  >|2.tmp 
# cat 2.tmp 
AA?BB?_CC_

И опять '.*' ни с чем не совпало.

 

PS. Проверял под линуксом.

# sed --version
GNU sed version 4.2.1

Опубликовано
А остальные выше 0x7f как?

 

Значит, я все-таки не ошибся форумом -) Вы правы, ни для одного из символов больше 0x7f не работает. Осталось понять почему, но это, видимо, уже совсем другая история. Спасибо -)

Опубликовано
Почему, понятно, потому что UTF8. Осталось понять, почему sed все таки что-то выделяет wink.gif

 

Ээ.. нет, мне это непонятно. Вопрос ведь в том, почему . (точка) совпадает только с 7-битными символами (вот это непонятно), а откуда их взять - это другой вопрос. И почему обязательно utf8? А может это был файл с обычной 8-битной кодировкой или вообще бинарник -)

 

 

PS. В качестве небольшого (но, может быть, для кого-то интересного) дополнения.

 

Если совпадение проверять таким скриптом

 

#!/bin/bash

for ((i = 0x00; i <= 0xff; i++)); do
printf "Try '0x%x' - " "$i"
echo | sed -e"s/^/\d${i}BB/" >|1.tmp
#cat 1.tmp
sed -i -e's/.*BB/_&_/' ./1.tmp
grep -v -q -e'_BB_' 1.tmp && echo -n "match" || echo -n "not match"
echo
done

 

, то получится, что еще 3 символа с кодами меньше 0x7f не совпадут (с '.*' по мнению скрипта): 0x26 (&), 0x5c (\) и 0x5f (_).

 

0x5f на самом деле совпадает, просто grep по '_BB_' сработает неправильно, если в файле 1.tmp исходная строка '_BB'.

 

0x5c и 0x26 не совпадут, потому, что (оказывается :huh: ) специальные символы в правой части s/// интерпретируются после преобразования эскейп-последовательностей в символы. Т.е, например:

 

echo abc | sed -e's/\(a\)\(bc\)/_\1_\2/'

то же самое, что

echo abc | sed -e's/\(a\)\(bc\)/_\x5c1_\x5c2/'

 

и

 

echo abc | sed -e's/.*/_&_/'

то же самое, что

echo abc | sed -e's/.*/_\x26_/'

Опубликовано
Вопрос ведь в том, почему . (точка) совпадает только с 7-битными символами

Ничего подобного.

echo яблоня | sed "s/я./_&_/"
_яб_лоня

 

И почему обязательно utf8?

echo $LANG

 

А может это был файл с обычной 8-битной кодировкой или вообще бинарник -)

Система об этом знать не знает и использует системную локаль по дефолту.

 

специальные символы в правой части s/// интерпретируются после преобразования эскейп-последовательностей в символы

Именно так.

Опубликовано
Ничего подобного.

echo яблоня | sed "s/я./_&_/"
_яб_лоня

 

И правда. Надо же, а я даже не знал, что sed читает многобайтовые символы. Но это все равно ничего не объясняет. Возьмем конкретный пример для 0xb2. Если локаль стоит правильно (допустим, это utf8), то почему 0xb2 не совпадает с точкой?

# echo | sed -e's/^/\xb2BB/' >|1.tmp
# sed -i -e's/.*BB/_&_/' ./1.tmp
# cat 1.tmp
?_BB_

 

 

echo $LANG

<..>

Система об этом знать не знает и использует системную локаль по дефолту.

 

Честно говоря, вообще не понял к чему это. А почему вы думаете, что там

echo $LANG

у меня будет стоять utf8, а не C, например? Более того, по моим представлениям, что там стоит вообще не должно влиять на работу точки: если там стоит однобайтовая кодировка, значит sed должна (я так думаю) читать файл, записанный в utf8, по байтам. Прочитается он неправильно, ну и что? ascii символы BB будут правильными всегда, а точка должна совпадасть со всем, что осталось.

Опубликовано

Хм.. думаю, что я знаю ответ. В любом случае, спасибо за помощь, сам бы я не догадался ^) В двух словах: точка не совпадала с символами больше 0x7f потому, что в кодировке utf8 нету таких кодов. Наверное, я должен написать подробнее, следуя традиции, что тот, на чей вопрос ответили, должен написать решение полностью.

 

Первый тест.

Поставим локаль для скрипта из предыдущего поста в однобайтовую, например, С и все сразу заработает (точка будет совпадать с символами больше 0x7f):

 

#!/bin/bash

LANG=C
for ((i = 0x00; i <= 0xff; i++)); do
printf "Try '0x%x' - " "$i"
echo | sed -e"s/^/\d${i}BB/" >|1.tmp
#cat 1.tmp
sed -i -e's/.*BB/_&_/' ./1.tmp
grep -v -q -e'_BB_' 1.tmp && echo -n "match" || echo -n "not match"
echo
done

 

 

Теперь немного теории про utf8. Это общеизвестно, и можно прочитать в том же utf8(7), тем не менее, чтобы все было в одном месте или если кому-то читать неохота, я вкратце напишу здесь.

 

Первый байт в кодировке utf8 - это длина последовательности байтов, которая содержит UCS код данного символа. Причем значение первого байта всегда в диапазоне 0xc0 - 0xfd. Фактически, если посмотреть на двоичную запись, то длина будет количеством единиц вначале этого байта и эта последовательность единиц всегда будет отделена нулем от остальной части байта, которая уже используется для хранения UCS кода символа, т.е

 

	110x xxxx		   - для 2-байтового utf8 кода
1110 xxxx		   - для 3-байтового utf8 кода
1111 0xxx		   - для 4-байтового utf8 кода
1111 10xx		   - для 5-байтового utf8 кода
1111 110x		   - для 6-байтового utf8 кода (это максимальная длина
					  кода символа в utf8).

1100 0000 (0xc0)   - минимальное значение,
1111 1101 (0xfd)   - максимальное значение.

Вместо 'x' будет часть битов (старших) UCS кода символа.

 

Остальные байты содержат оставшиеся биты UCS кода символа и их значение всегда в диапазоне 0x80 - 0xbf. Т.е они всегда будут иметь префикс (два старших бита) '10', что сделано, видимо, чтобы они всегда отличались от первого байта и можно было легко обнаружить, что часть многобайтового символа потеряна. Т.е:

 

	10xx xxxx		   - не-первый байт кода символа в utf8.
1000 0000 (0x80)	- минимальное значение,
1011 1111 (0xbf)	- максимальное значение.

 

 

Второй тест.

 

Теперь, установив локаль в utf8, попробуем просто перебирать все возможные двухбайтовые последовательности и смотреть совпадет ли точка c получившимся многобайтовым символом и какие при этом будут значения байтов. Вот скрипт (выполняться он будет очень долго - я до конца так и не дождался, но это и не обязательно - уже вначале станет все видно):

 

LANG=en_US.UTF8
for ((byte1 = 0x00; byte1 <= 0xff; byte1++)); do
for ((byte2 = 0x00; byte2 <= 0xff; byte2++)); do
	printf "Try utf8: byte1 '0x%x', byte2 '0x%x'\n" "$byte1" "$byte2"
	echo | sed -e"s/^/ \d${byte1}\d${byte2}BB/" >|1.tmp
	sed -i -e's/.*BB/_&_/' ./1.tmp
	grep -q -e'^_' 1.tmp && echo -e "\tmatch" || echo -e "\tnot match "
	printf "\tutf8: byte1 '0x%x', byte2 '0x%x'\n" "$byte1" "$byte2"
	cat 1.tmp
done
done

 

(первым символом в каждом файле теперь записывается пробел, поэтому выражение проверки у grep я изменил на '^_')

 

Просмотрев вывод этого скрипта, будет видно, что точка не совпадает только с неправильными utf8 кодами.

 

 

И, наконец, третий тест. Проверим, что точка совпадет со всеми правильными двухбайтовыми utf8 кодами.

 

В двухбайтном utf8 коде могут быть записаны UCS коды от 0x7f (потому что ascii в utf8 всегда записывается одним байтом) до (2^11 - 1) (те 0x7ff), тк двухбайтовый utf8 код будет иметь вид

 

	110x xxxx 10xx xxxx

 

Здесь одиннадцать букв 'x', т.е UCS код, который мы можем записать с помощью двух байт utf8, должен содержать не больше 11 бит.

 

Скрипт будет работать так (возможно, это не самый оптимальный вариант, но есть ли разница?): переменная ucs_cp перебирает UCS коды от 0x80 до 0x7ff. UCS код я разделяю на две части: byte1 - это часть, которая будет записана в первый байт utf8 кода (тот, что содержит длину последовательности). Сюда записываем 5 старших бит UCS кода (или, другими словами, все, кроме 6 младших бит, - сдвиг на 6 бит вправо). byte2 - это часть, которая будет записана во второй байт utf8 кода. Сюда записываем 6 младших бит UCS кода (или, другими словами, стираем все, кроме 6 младших бит, - побитовое 'И' с 0x3f). Дальше добавляем в начало byte1 '110' (длина многобайтового urf8 кода) - побитовое 'ИЛИ' c 0xc0, - и в начало byte2 добавляем '10' (как к не-первому байту многобайтового utf8 кода) - побитовое 'ИЛИ' c 0x80. Затем byte1 записывается в файл первым (как младший байт), за ним byte2 (как старший байт). После чего идет стандартная проверка совпала ли точка.

 

#!/bin/bash

declare -i ucs_cp=0  # UCS code point
declare -i byte1=0   # Least significant byte in utf-8 code, containing five
				 # most significant bits of UCS code.
declare -i byte2=0   # Most significant byte in utf-8 code, containing six
				 # least significant bits of UCS code.

LANG=en_US.UTF8
for ((ucs_cp = 0x80; ucs_cp <= 0x7ff; ucs_cp++)); do
printf "Try UCS code '0x%x':\n" "$ucs_cp"
byte1=$((ucs_cp >> 6))
byte2=$((ucs_cp & 0x3f))
printf "\tsplit: 1st byte '0x%x', 2nd byte '0x%x'\n" "$byte1" "$byte2"
byte1=$((byte1 | 0xc0))
byte2=$((byte2 | 0x80))
printf "\tutf8: byte1 '0x%x', byte2 '0x%x'\n" "$byte1" "$byte2"
echo | sed -e"s/^/ \d${byte1}\d${byte2}BB/" >|1.tmp
cat 1.tmp
sed -i -e's/.*BB/_&_/' ./1.tmp
grep -q -e'^_' 1.tmp && echo -n "match" || echo -n "not match"
echo
cat 1.tmp
done

 

В результате, точка совпадет со всеми получившимися символами (скрипт тоже работает небыстро, но дождаться стоит).

 

PS. Не уверен, что ничего не напутал со старшими и младшими битами и байтами, но вроде ж работает :D

PS2. И почему-то меня не покидает ощущение, что все это такой большой оффтопик для этого форума.. :D

Опубликовано

А можно ссылку на драйвера, эта же проблема....не могу избавиться....(BitSpirit не помог)... пожалуйста... очень надо...

 

А можно ссылку на драйвера, эта же проблема....не могу избавиться....(BitSpirit не помог)... пожалуйста... очень надо...

 

На ноутбуке вылазит синий экран при работе торрента и причину я знаю. ADMtek ADM8511 USB To Fast Ethernet Converter - что-то вроде USB-сетевой. Разъем для штекера сломался месяца 4 назад, пришлось искать выход из сложившейся ситуации - купил этот агрегат. Драйвер к нему идет только под ХР, а у меня Вин7. Но по ряду причин, просто не могу поменять операционку... Пробовал менять драйвера для этой сетевушки - не помогало. Пробовал менять торрент клиенты, установил BitTorrent - вроде все работало стабильно, пока был чистый. Но недавно стал опять вылетать в BSOD. И проблема возникает ТОЛЬКО при работе торрента, при работе в интеренете все в порядке.

Вот что говорит BlueScreenView:

Спойлер:
==================================================

Dump File : 081910-24039-01.dmp

Crash Time : 19.08.2010 20:44:28

Bug Check String : DRIVER_IRQL_NOT_LESS_OR_EQUAL

Bug Check Code : 0x000000d1

Parameter 1 : 0x00000001

Parameter 2 : 0x00000002

Parameter 3 : 0x00000000

Parameter 4 : 0x967d91b1

Caused By Driver : NET8511.SYS

Caused By Address : NET8511.SYS+11b1

File Description : NET8511 USB To Fast Ethernet Adapter NDIS 5.0 Miniport Driver

Product Name : NET8511 USB To Fast Ethernet Adapter

Company : USB2LAN

File Version : 2.05.2001.0213

Processor : 32-bit

Computer Name :

Full Path : C:\Windows\Minidump\081910-24039-01.dmp

Processors Count : 2

Major Version : 15

Minor Version : 7600

==================================================

 

 

Если у кого-то есть какие-то соображения - поделитесь, пожалуйста. Уже не знаю, что делать...

 

А можно ссылку на драйвера, эта же проблема....не могу избавиться....(BitSpirit не помог)... пожалуйста... очень надо...

 

 

 

 

Dvvarf, поставил более свежие дрова на сетевую и поменял клиент на BitSpirit. Пока все отлично.

Если проблема вернется - воспользуюсь вашим советом. Спасибо

Опубликовано
А можно ссылку на драйвера, эта же проблема....не могу избавиться....(BitSpirit не помог)... пожалуйста... очень надо...

Пожалуйста, отредактируйте своё сообщение. И попробуйте сделать то, что я написал в тот раз.

  • 2 недели спустя...
Опубликовано (изменено)
постоянно возникает сообщение "недостаточно места на локальный диск C". Очищаю временные файлы какой-то утилитой, пространство восстанавливается, но как только включаю фотошоп, снова приходит такое сообщение, мол, места в C больше нет. Как исправить, подскажите. Изменено пользователем Шарж (смотреть историю редактирования)
Опубликовано (изменено)

Сколько вообще места на диске осталось ?

Возможно, поможет снижение критического уровня оставшегося места на HDD.

Изменено пользователем Maru-sempai (смотреть историю редактирования)
Опубликовано (изменено)
сейчас 794 мб. бывало и меньше места, но ничего не происходило. а впоследнее время как заговоренный. Изменено пользователем Шарж (смотреть историю редактирования)
  • 1 месяц спустя...
Опубликовано

Не работает антивирус (распространяется официально на бесплатной основе, используется для полной очистки компьютера от вирусов в особенно аховых ситуациях - когда ОС не загружается вовсе) - тип файла iso, вместо того, чтобы творилось хоть что-то осознанное запускается ПауерТуГоу, хотя я вроде ничего записывать и не собираюсь...

тоже самое с еще одной программой (манга-студио, не оч. офиц. вариант) - не открывает, не запускает...

 

знаю, что темен аки лес дремучий в подобных делах, но если не спрашивать совета и не пытаться, ведь так можно на этом же уровне и остаться!..

Опубликовано (изменено)
<br />.ISO - образ для прожига/записи на CD/DVD. <br />Попробуйте открыть архиватором (Winrar) и извлечь содержимое.<br />
А не проще смонтировать и пользоваться, ничего не извлекая (в винде что-нибудь типа daemon-tools)? Изменено пользователем sgfault (смотреть историю редактирования)

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...

Важная информация