(Translated by https://www.hiragana.jp/)
Потребител:Prizrak – Уикипедия Направо към съдържанието

Потребител:Prizrak

от Уикипедия, свободната енциклопедия
Уикипедия:Вавилон
bg-N За този потребител българският език e роден.
en-4 This user has near native speaker knowledge of English.
ru-3 Этот участник свободно владеет русским языком.
de-2 Dieser Benutzer beherrscht Deutsch auf fortgeschrittenem Niveau.
eo-2 Ĉi tiu uzanto havas meznivelan scion de Esperanto.
es-1 Esta persona tiene un conocimiento básico del español.
Потребители по език

Казвам се Борислав Станимиров и съм от София. Работя като програмист.

Когато имам свободно време, се занимавам предимно със статии за математика и програмиране. От време на време превеждам и други статии от английската, руската или немската Уикипедия. При тези случаи се водя от значимостта (според мен) на статиите, по-скоро, отколкото от темата.

Как се сортира списък от хора по азбучен ред на фамилиите

[редактиране | редактиране на кода]

С този Ruby скрипт:

data = <<DATA
DATA

class Name
  def initialize(name, text)
    @name = name
    @text = text
  end
	
  def <=>(rhs)
    @name <=> rhs.name
  end
	
  def to_s
    @text
  end
	
  attr_reader :name
end

names = Array.new(256)
256.times do |i|
  names[i] = []
end

data.each_line do |line|
  if (line =~ (/\* \[\[.+ (.+)\]\]/)) == 0
    n = Name.new($1, line)		
    names[$1[1]] << n
  end
end

256.times do |i|
  next if names[i].empty?
  puts "===#{names[i][0].name[0..1]}==="
  puts names[i].sort
end
  • Например, имате списъка:
* [[Тошо Киров]] - супер известен човек
* [[Гошо Атанасов]] - още по-супер известен човек
==Произволен текст==
* [[Пешо Кацов]] - президент на света
* [[Груйо Донев]] - цар на вселената
  • Пействате този текст в скрипта между първото и второто DATA. Пускате го и той отпечатва списъка
===А===
* [[Гошо Атанасов]] - още по-супер известен човек
===Д===
* [[Груйо Донев]] - цар на вселената
===К===
* [[Пешо Кацов]] - президент на света
* [[Тошо Киров]] - супер известен човек
  • Ако искате да няма букви за всяка фамилия, изтрийте реда puts "===#{i.chr}===". Тогава изходът ще е:
* [[Гошо Атанасов]] - още по-супер известен човек
* [[Груйо Донев]] - цар на вселената
* [[Пешо Кацов]] - президент на света
* [[Тошо Киров]] - супер известен човек
  • Забележка: скриптът работи само с имена на кирилица в уникод. За да работи за латиница или ascii кирилица, трябват доста поправки, но ако някой иска, нека ми пише и ще пусна и такъв вариант.