Почему моя сортировка терпит неудачу для двузначных цифр с использованием perl? [Дубликат]

Это обсуждалось во многих сообщениях, но все же я не мог найти решение с помощью:

android:focusable="false"
android:focusableInTouchMode="false"
android:focusableInTouchMode="false"

Ниже решение будет работать с любой из компонентов ui: Button, ImageButtons, ImageView, Textview. LinearLayout, RelativeLayout кликает внутри ячейки списка и отвечает на onItemClick:

Класс адаптера - getview ():

    @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = convertView;
            if (view == null) {
                view = lInflater.inflate(R.layout.my_ref_row, parent, false);
            }
            final Organization currentOrg = organizationlist.get(position).getOrganization();

            TextView name = (TextView) view.findViewById(R.id.name);
            Button btn = (Button) view.findViewById(R.id.btn_check);
            btn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    context.doSelection(currentOrg);

                }
            });

       if(currentOrg.isSelected()){
            btn.setBackgroundResource(R.drawable.sub_search_tick);
        }else{
            btn.setBackgroundResource(R.drawable.sub_search_tick_box);
        }

    }

В этом вы можете получить объект с нажатой кнопкой активность. (Специально, если вы хотите, чтобы кнопка выступала в качестве флажка с выбранными и не выбранными состояниями):

    public void doSelection(Organization currentOrg) {
        Log.e("Btn clicked ", currentOrg.getOrgName());
        if (currentOrg.isSelected() == false) {
            currentOrg.setSelected(true);
        } else {
            currentOrg.setSelected(false);
        }
        adapter.notifyDataSetChanged();

    }
0
задан user4022966 9 September 2014 в 14:13
поделиться

3 ответа

Сортировка файлов естественно с помощью Sort::Key::Natural natsort .

Ниже будут автоматически сортироваться файлы, отделяя альфа-и числовые части имени для соответствующей логики сортировки.

use strict;
use warnings;

use Sort::Key::Natural qw(natsort);

for my $file ( natsort <Temp*.csv> ) {
    # this part appends the required data to a seperate file and works fine
}

Следующие поддельные данные должны продемонстрировать этот модуль в действии:

use strict;
use warnings;

use Sort::Key::Natural qw(natsort);

print natsort <DATA>;

__DATA__
Temp100.csv
Temp8.csv
Temp20.csv
Temp1.csv
Temp7.csv

Выходы:

Temp1.csv
Temp7.csv
Temp8.csv
Temp20.csv
Temp100.csv
4
ответ дан Miller 1 September 2018 в 08:40
поделиться

Если числа действительно важны, вы можете прочитать их специально после имени файла, при этом сообщается об ошибках об отсутствующих файлах:

my @nums = 1 .. 1500;  # or whatever the highest is

for my $num (@nums) {
    my $file = "Temp$num.csv";
    unless (-e $file) {
        warn "Missing file: $file";
        next;
    }
    ...
    # proceed as normal
}

Если вам нужно количество файлов, вы можете просто использовать свои old glob:

my @files = <Temp*.csv>;
my $count = @files;       # get the size of the array
my @nums = 1 .. $count;

С другой стороны, если вы управляете процессом, который печатает файлы, вы можете выбрать формат, который будет автоматически сортироваться, например:

temp00001.csv
temp00002.csv
temp00003.csv
temp00004.csv
...
temp00101.csv
3
ответ дан TLP 1 September 2018 в 08:40
поделиться

Вы можете использовать преобразование Schwartzian для чтения и сортировки файлов за один шаг,

my @files = 
  map { $_->[0] }
  sort { $a->[1] <=> $b->[1] }
  map { [ $_, /(\d+)/ ] } <Temp*.csv>;

или используя менее эффективный и более простой вид,

my @files = sort { ($a =~ /(\d+)/)[0] <=> ($b =~ /(\d+)/)[0] } <Temp*.csv>;
3
ответ дан Сухой27 1 September 2018 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: