Bem-vindo: Sex, 20 de Setembro 2019, 10:55 Pesquisa avançada

Jeitos de ordenar arquivos?

Escreveu alguma aplicação ou script que quer partilhar? Ou conhece algo que quer partilhar? Sabe alguma linguagem de programação e quer partilhar esse conhecimento com um tutorial? Tem alguma dúvida em alguma linguagem? Então este é o sítio certo.

Jeitos de ordenar arquivos?

Mensagempor odraencoded » Sex, 1 de Março 2013, 22:18

Só por curiosidade, quantos jeitos diferentes existem para ordenar uma lista de arquivos?

Os que eu já conheço são:
  • Alfabeticamente: Nomes de arquivo são comparados pelos valores de seus caracteres. Esta deve considerar separadores de diretório (Ex: "/", "\\") como sempre maior ou sempre menor que outros caracteres.
  • Numericamente: Extensão da ordem alfabética onde sequencias numéricas são ordenadas separadamente dos outros caracteres (Ex: "1/" tem precedência à "02/" em ordem numérica mas não em ordem alfabética e "01 02x03" teria mesma colocação que "1 2x3")
  • Por extensão: Arquivos são ordenados primeiro por suas extensões e então alfabeticamente.
  • Por tipo: Arquivos são agrupados por tipos MIME (Ex: "Imagens", "Vídeos", "Áudio") Esses grupos são então ordenados alfabeticamente e os arquivos dentro de cada grupo são ordenados dentro dos limites do grupo.
  • Por tamanho: Arquivos são ordenados pelo seu tamanho no disco, os que ocupam menos espaço tendo precedência
  • Por data (criação / escrita / leitura): Arquivos são ordenados por datas ligadas à eles, arquivos com datas mais recentes tendo precedência

Alguém conhece mais algum?

odraencoded
 
Mensagens: 3
Registrado em: 01 Março, 2013

Re: Jeitos de ordenar arquivos?

Mensagempor Claudio Novais » Sex, 1 de Março 2013, 23:01

Alfabeticamente inclui numericamente! ;)

De resto, no geral são essas as maneiras. No entanto, você pode ordenar ainda mais se incluir mais colunas visíveis:
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Jeitos de ordenar arquivos?

Mensagempor odraencoded » Sex, 1 de Março 2013, 23:19

Claudio Novais (01-03-2013, 22:01) escreveu:Alfabeticamente inclui numericamente! ;)


Não se você não o programar deste jeito :D

odraencoded
 
Mensagens: 3
Registrado em: 01 Março, 2013

Re: Jeitos de ordenar arquivos?

Mensagempor Claudio Novais » Sex, 1 de Março 2013, 23:22

Números no nome de ficheiros são caracteres, tal como as letras. Por isso está incluído! ;)
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Jeitos de ordenar arquivos?

Mensagempor odraencoded » Sáb, 2 de Março 2013, 13:04

Claudio Novais (01-03-2013, 22:22) escreveu:Números no nome de ficheiros são caracteres, tal como as letras. Por isso está incluído! ;)


Sim. Números no nome de ficheiros são caracteres só que, infelizmente, a maioria das implementações do algoritmo de ordenação alfabética tratam eles apenas como caracteres.
Isto é, um caractere numeral e comparado com outro caractere numeral na mesma posição pelo seu valor unicode, assim como são outros caracteres. Eles não são comparados pelo valor de possíveis sequências numéricas a qual pertencem. :\

Por exemplo "Arquivo001.txt" teria precedência à "Arquivo002.txt" pois ao primeiro caractere diferente, "1" tem precedência à "2".Isso não ocorre porque são números mas sim porque o valor do caractere "1" em unicode, que é 49, é menor que o valor do caractere "2", que é 50.

Em uma sequência de caracteres tal como "Arquivo 2008-5-5.txt" e "Arquivo 2008-05-15.txt", o primeiro arquivo teria sequencia numérica mas não alfabética.
Um comparador alfabético que não levasse em consideração sequências numéricas, compararia "5" com "0" na 13ª posição cujos valores são 53 e 48 respectivamente, e decidira nesse ponto que o segundo arquivo precede o primeiro.

Um comparador que levasse em consideração sequências numéricas, iria além da comparação entre valores de cada caractere e compararia também os valores entre sequências numéricas. Neste caso, ao invés de comparar os valores de caractere de "5" e "0", seriam os valores inteiros de "5" e "05", que são 5 e 5.
Após isso compararia 5 com 15 e decidiria que o primeiro arquivo precede o segundo. :D

odraencoded
 
Mensagens: 3
Registrado em: 01 Março, 2013

Re: Jeitos de ordenar arquivos?

Mensagempor Claudio Novais » Sáb, 2 de Março 2013, 16:18

Verdade, ao nível de programação, o normal é ordenação via valor de codificação. No Nautilus, isso já faz isso automaticamente. ;) Por exemplo essa data seria ordenada corretamente. Claro que o algoritmo de ordenação aí tem de trabalhar os números como números e não codificação de caracteres.
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011


Voltar para Scripts, programação e aplicações em desenvolvimento

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes

cron