Gå til innhold

Fra rent dokument til adresse bok


Anbefalte innlegg

Skrevet

Hei

 

Jeg har en liste med navn, 2 telefon.nr, og epost. Dem vil jeg veldig gjerne ha inn i adressebok.

 

Jeg har sett det er mulig å importere filer, men jeg klarer ikke lage filene riktig, så den blir ikke vertifisert, og skal jeg redigere mye på hver fil, så er det nesten like lett å skrive inn en for en. Det er snakk om 200 nummer, så har ikke veldig lyst til å skrive inn allt...

 

Takker for svar

 

Mvh Einar

Videoannonse
Annonse
Skrevet

Jeg har ikke Mac, men regner med at adresseboken kan importere vCard filer.

 

Her har du en vCard-fil (lagres som *.vcf) som bare må endres litt

BEGIN:VCARD
VERSION:3.0
TEL:12345678
TEL:98765432
EMAIL:[email protected]
FN:Ola Normann
END:VCARD

 

Hvis du ikke gidder å programmere det selv, kan du bare gi meg formatet på tekstfila så kan jeg lage et program :)

Skrevet

Takk Judofyr!

 

BTW, kanskje jeg lager appen selv :p lærer meg Ruby, så det passer bra :)

 

Men hvis du har veldig lyst, så gjør det ikke noe om du lager programmet, da får jeg noe å se etter også, for du lager det vel i ruby? eller?

 

Etternavn, Fornavn
12345678 
33445566 
[email protected] 
Etternavn2, Fornavn2
12345678 
33445566 
[email protected] 

Skrevet

Ruby :love:

 

Her er programmet (kjøres: program.rb fil):

lines = File.read(ARGV[0]).split("\n")

contacts = []

(lines.length / 4).times do |x|
 r = (contacts[x] = {})
 r[:surname], r[:name] = *lines.shift.split(", ")
 r[:tel1] = lines.shift
 r[:tel2] = lines.shift
 r[:mail] = lines.shift
end

contacts.each do |contact|
 result = "BEGIN:VCARD\n"
 result << "VERSION:3.0\n"
 result << "TEL:#{contact[:tel1]}\n"
 result << "TEL:#{contact[:tel2]}\n"
 result << "EMAIL:#{contact[:mail]}\n"
 result << "FN:#{contact[:name]} #{contact[:surname]}\n"
 result << "N:#{contact[:surname]};#{contact[:name]};;;\n"
 result << "END:VCARD"
 File.open(contact[:tel1] + '.vcf', "w") do |f|
   f << result
 end
end

 

Skrevet

Hei

 

Takk for scriptet!

 

Jeg fikk ikke dette her helt til å fungere. Skal jeg lage en fil, f.eks: liste.txt så kjøre i Terminal:

program.rb liste.txt ? (har ikke prøvd)

 

Så prøvde jeg stappe allt inn i contacts, men da ble det bare bug :p

Skrevet

Ett problem er hvis det er tomt område, altså hvis det ikke er noe epost f.eks..

 

Kunne du gjort slik at hver gang det var linjeskjift, altså blank område, så ble det ny person...

 

Noe slikt

 

Etternavn, Fornavn

12345678

33445566

 

Etternavn2, Fornavn2

12345678

33445566

[email protected]

Skrevet
lines = File.read(ARGV[0]).split("\n")

contacts = []

(lines.length / 4).times do |x|
r = (contacts[x] = {})
r[:surname], r[:name] = *lines.shift.split(", ")
r[:tel1] = lines.shift
r[:tel2] = lines.shift
r[:mail] = lines.shift
end

contacts.each do |contact|
result = "BEGIN:VCARD\n"
result << "VERSION:3.0\n"
result << "TEL:#{contact[:tel1]}\n" unless contact[:tel1].strip.empty?
result << "TEL:#{contact[:tel2]}\n" unless contact[:tel2].strip.empty?
result << "EMAIL:#{contact[:mail]}\n" unless contact[:mail].strip.empty?
result << "FN:#{contact[:name]} #{contact[:surname]}\n"
result << "N:#{contact[:surname]};#{contact[:name]};;;\n"
result << "END:VCARD"
File.open(contact[:tel1] + '.vcf', "w") do |f|
  f << result
end
end

Skrevet (endret)

Nå da:

File.open(ARGV[0], "r") do |f|
 file = f.read
 @lines = file.split(["\n", "\r", "\r\n"].detect {|x| file.include? x})
end

contacts = []

(@lines.length / 4).times do |x|
r = (contacts[x] = {})
r[:surname], r[:name] = *@lines.shift.split(", ")
r[:tel1] = @lines.shift
r[:tel2] = @lines.shift
r[:mail] = @lines.shift
end

contacts.each do |contact|
result = "BEGIN:VCARD\n"
result << "VERSION:3.0\n"
result << "TEL:#{contact[:tel1]}\n" unless contact[:tel1].strip.empty?
result << "TEL:#{contact[:tel2]}\n" unless contact[:tel2].strip.empty?
result << "EMAIL:#{contact[:mail]}\n" unless contact[:mail].strip.empty?
result << "FN:#{contact[:name]} #{contact[:surname]}\n"
result << "N:#{contact[:surname]};#{contact[:name]};;;\n"
result << "END:VCARD"
File.open(contact[:tel1] + '.vcf', "w") do |f|
 f << result
end
end

 

EDIT: Liten kodeforbedring

Endret av Judofyr
Skrevet (endret)

Nope, ble fortsatt mange filer...

 

Og filnavnene blir veldig rare...

 

æøå fungerer ikke

Før .vcf blir den en \

 

Dette blir også inkludert:

67974.jpeg

Endret av Einar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...