eigan Skrevet 14. mai 2007 Del Skrevet 14. mai 2007 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 Lenke til kommentar
Magnus Holm Skrevet 14. mai 2007 Del Skrevet 14. mai 2007 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 Lenke til kommentar
eigan Skrevet 14. mai 2007 Forfatter Del Skrevet 14. mai 2007 Takk Judofyr! BTW, kanskje jeg lager appen selv 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] Lenke til kommentar
Magnus Holm Skrevet 14. mai 2007 Del Skrevet 14. mai 2007 Ruby 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 Lenke til kommentar
eigan Skrevet 16. mai 2007 Forfatter Del Skrevet 16. mai 2007 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 Lenke til kommentar
Magnus Holm Skrevet 16. mai 2007 Del Skrevet 16. mai 2007 liste.txt er da denne fila: Etternavn, Fornavn 12345678 33445566 [email protected] Etternavn2, Fornavn2 12345678 33445566 [email protected] Lenke til kommentar
eigan Skrevet 21. mai 2007 Forfatter Del Skrevet 21. mai 2007 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] Lenke til kommentar
Magnus Holm Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 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 Lenke til kommentar
eigan Skrevet 21. mai 2007 Forfatter Del Skrevet 21. mai 2007 Kjørte akkurat programmet.. Har du kjørt det selv Hver eneste linje ble en fil... Lenke til kommentar
Magnus Holm Skrevet 22. mai 2007 Del Skrevet 22. mai 2007 (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 22. mai 2007 av Judofyr Lenke til kommentar
eigan Skrevet 22. mai 2007 Forfatter Del Skrevet 22. mai 2007 (endret) Nope, ble fortsatt mange filer... Og filnavnene blir veldig rare... æøå fungerer ikke Før .vcf blir den en \ Dette blir også inkludert: Endret 22. mai 2007 av Einar Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå