http://smartmontools.sourceforge.net/badblockhowto.html#sdisk
Видит раздел по переназначению сбойного блока. Можно восстановить это на уровне файловой системы или блочном уровне, видя, что у Вас есть несколько файловых систем, и каждый является несобственным, я рекомендовал бы позже. Можно выполнить badblocks и передать вывод по каналу к sg_reassign.
Резервное копирование любые критические данные перед продолжением.
Я попробовал кое-что и очень удивлен, что это действительно сработало, но вот что я сделал:
Класс Sort имеет частную функцию под названием internalCompare. Поскольку это личное, вы не можете его называть. НО существует функция получения, называемая compareFunction, и если функция сравнения не определена, она возвращает ссылку на функцию internalCompare. Я получил эту ссылку и затем назвал ее.
private function myCompare(a:Object, b:Object, fields:Array = null):int
{
if(String(a).toLowerCase() == 'all')
{
return -1;
}
else if(String(b).toLowerCase() == 'all')
{
return 1;
}
// NEED to return default comparison results here?
var s:Sort = new Sort();
var f:Function = s.compareFunction;
return f.call(null,a,b,fields);
}
The solution from John Isaacks is awesome, but he forgot about "fields" variable and his example doesn't work for more complicated objects (other than Strings)
Example:
// collection with custom objects. We want to sort them on "value" property
// var item:CustomObject = new CustomObject();
// item.name = 'Test';
// item.value = 'Simple Value';
var collection:ArrayCollection = new ArrayCollection();
var s:Sort = new Sort();
s.fields = [new SortField("value")];
s.compareFunction = myCompare;
collection.sort = s;
collection.refresh();
private function myCompare(a:Object, b:Object, fields:Array = null):int
{
if(String((a as CustomObject).value).toLowerCase() == 'all')
{
return -1;
}
else if(String((b as CustomObject).value).toLowerCase() == 'all')
{
return 1;
}
// NEED to return default comparison results here?
var s:Sort = new Sort();
s.fields = fields;
var f:Function = s.compareFunction;
return f.call(null,a,b,fields);
}
Спасибо, ребята, это очень помогло. В нашем случае нам нужны были все пустые строки (в DataGrid) внизу. Все непустые строки следует отсортировать обычным образом. Все данные нашей строки - это динамические объекты (преобразованные из JSON) - вызов ValidationHelper.hasData () просто проверяет, пуста ли строка. По какой-то причине поля иногда содержат значение dataField String вместо SortFields, поэтому проверка перед установкой свойства 'fields':
private function compareEmptyAlwaysLast(a:Object, b:Object, fields:Array = null):int {
var result:int;
if (!ValidationHelper.hasData(a)) {
result = 1;
} else if (!ValidationHelper.hasData(b)) {
result = -1;
} else {
if (fields && fields.length > 0 && fields[0] is SortField) {
STATIC_SORT.fields = fields;
}
var f:Function = STATIC_SORT.compareFunction;
result = f.call(null,a,b,fields);
}
return result;
}