Avatar billede duno Nybegynder
29. maj 2006 - 15:42 Der er 9 kommentarer og
1 løsning

ændring af "efternavn"

Kan man ikke via et script ændre .gif til .jpg i en database??

mine filer hedder havmaage.gif, fisk.gif osv.. men de skal hedde havmaage.jpg, fisk.jpg osv.. jeg har mere end 1000 små billeder som skal have skiftet efternavn i databasen, så det ville være dejligt hvis det kunne automatiseres.
Avatar billede kim_falkner Nybegynder
29. maj 2006 - 15:54 #1
Jeg antager at de ligger fysisk i en folder og det skal laves een gang for alle.

1. Så laver du en "dir *.gif > filer.txt"
2. Nu har du alle filnavne i en fil der hedder filer.txt
3. Åbne denne i et regneark
4. Tilføj en kolonne med værdien RENAME og lav en regnet kolonne der skifter navnet til det nye navn. Regnearket kommer således til at se således ud:

RENAME fil1.gif fil2.jpg

5. Gem din fil som en .BAT fil og kør den fra en kommandoprompt.
Avatar billede musicchart.dk Nybegynder
29. maj 2006 - 15:56 #2
Det var jo i en database.
Så kan du lave noget ala dette:

strSQL = "Select * From billeder ORDER by id"
Set rs = Conn.Execute(strSQL)

Do
    arrBillede = Split(rs("navn"),".")
    Conn.Execute("UPDATE billeder SET navn = '"& arrBillede(0) & ".jpg" &"' WHERE id = " & rs("id"))
rs.movenext
Loop until rs.eof
Avatar billede duno Nybegynder
29. maj 2006 - 16:06 #3
musicchart.dk - cool.. hvad nu hvis jeg vil ændre det til /jpgformat/fisk.jpg

tjekker det lige. men dine points er hjemme.. dette er blot et tillægsspørgsmål :o)
Avatar billede musicchart.dk Nybegynder
29. maj 2006 - 16:09 #4
Altså i databasen? Det forstår jeg ikke hvorfor du vil, fordi når du udskriver billedet, skriver du vel bare:

<img src="/jpgformat/<%=rs("navn")%>">

Meeeen, hvis du vil have det rettet i databasen, så ændre blot:

Conn.Execute("UPDATE billeder SET navn = '"& arrBillede(0) & ".jpg" &"' WHERE id = " & rs("id"))

Til:

Conn.Execute("UPDATE billeder SET navn = '"& "/jpgformat/" & arrBillede(0) & ".jpg" &"' WHERE id = " & rs("id"))
Avatar billede duno Nybegynder
29. maj 2006 - 16:23 #5
Hej igen musicchart.dk

hele pointen er at:

grund 1 ) jeg lige nu har alle mine billeder liggende i samme mappe som resten af sitet, det ville være dejligt hvis de lå i sin egen mappe
grund 2 ) jpgformat er det sted hvor alle andre jpg filer ligger
grund 3 ) lige nu er linket (indholdet af database) kun navnet (fisk.gif) det vil være fedt hvis samlet sti er jpgformat/fisk.gif
¨
Men mange tak, det er nu rart at få lidt orden i sagerne ( grafik der, asp der, databaser der.. osv :o) )

Hilsen

Duno :o)

ps. points sendt :o)
Avatar billede musicchart.dk Nybegynder
29. maj 2006 - 16:32 #6
Så længe du er tilfreds :o)

Tak for point
Avatar billede duno Nybegynder
29. maj 2006 - 16:48 #7
hmm.. hvordan hulen får jeg lige kontakt med databasen?? i denne kode??
Avatar billede duno Nybegynder
29. maj 2006 - 16:56 #8
jeg får følgende fejl

Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'Split'


min kode ser ud som følger:

<%

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/../db/test.mdb")
Conn.Open DSN
strSQL = "Select * From FORUM_MEMBERS ORDER by MEMBER_ID"
Set rs = Conn.Execute(strSQL)

Do
    arrBillede = Split(rs("M_AVATAR_URL"),".")
    Conn.Execute("UPDATE FORUM_MEMBERS SET M_AVATAR_URL = '"& arrBillede(0) & ".jpg" &"' WHERE MEMBER_ID = " & rs("MEMBER_ID"))
rs.movenext
Loop until rs.eof
%>
Avatar billede musicchart.dk Nybegynder
29. maj 2006 - 18:14 #9
Du har sikkert et tomt felt et sted.
Prøv med flg:

<%

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/../db/test.mdb")
Conn.Open DSN
strSQL = "Select * From FORUM_MEMBERS ORDER by MEMBER_ID"
Set rs = Conn.Execute(strSQL)

billede = ""

Do
    billede = rs("M_AVATAR_URL")

    if InStr(billede,".") > 0 then
        arrBillede = Split(billede,".")
        Conn.Execute("UPDATE FORUM_MEMBERS SET M_AVATAR_URL = '"& arrBillede(0) & ".jpg" &"' WHERE MEMBER_ID = " & rs("MEMBER_ID"))
    end if
rs.movenext
Loop until rs.eof
%>
Avatar billede duno Nybegynder
30. maj 2006 - 15:08 #10
cool.. takker :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester