Avatar billede axkris Nybegynder
14. september 2003 - 18:14 Der er 5 kommentarer og
1 løsning

Optimer skod-kode

Hej

Kan du ikke optimere følgende kode, så den bliver lidt pænere. :-)

____________________________________

counter = 2
             
              do until stopRun = "true"
             
                  fileNameNew = replace(fileName, "(1).jpg", "")
                  fileNameNew = fileNameNew & counter & ".jpg"
             
                  if not ifFileExistsServer (FileNameNew) then
                      Image.LoadImage(FileName)
                      Image.FileName = (FileNameNew)
                      if not Image.SaveImage then
                          SendBack("Filen kunne ikke komprimeres - prøv med en anden fil")
                      end if
                    fileDelete(FileName)
                      stopRun = "true"
                  else
                      stopRun = "false"
                      i = counter + 1
                  end if
              loop
Avatar billede eagleeye Praktikant
14. september 2003 - 18:22 #1
Det er ikke meget at ændre på..
Det er sådan jeg også vil skrive det.

Hvordan vil ønsker du, da optimere og pænere kode normlat er to modsætninger?

For at optimere vil jeg lave denne:

          fileNameNew = replace(fileName, "(1).jpg", "")
          fileNameNew = fileNameNew & counter & ".jpg"

om til:

          fileNameNew = replace(fileName, "(1).jpg", "") & counter & ".jpg"
Avatar billede axkris Nybegynder
14. september 2003 - 18:27 #2
Men jeg tænkte på om ikke until-sætningen samt counter-tælleren kunne blive lavet om, så de ser pænere ud?
Avatar billede eagleeye Praktikant
14. september 2003 - 18:57 #3
tja... skal der ikke stå:

    counter = counter + 1

og ikke i = counter + 1
Avatar billede eagleeye Praktikant
15. september 2003 - 09:13 #4
Eksvis ville jeg bruge do while i stedet for do unitl, da do while er det som man normalt bruger i andre sprog..:

 
              do until stopRun = "true"
             
                  fileNameNew = replace(fileName, "(1).jpg", "")
                  fileNameNew = fileNameNew & counter & ".jpg"
             
                  if not ifFileExistsServer (FileNameNew) then
                      Image.LoadImage(FileName)
                      Image.FileName = (FileNameNew)
                      if not Image.SaveImage then
                          SendBack("Filen kunne ikke komprimeres - prøv med en anden fil")
                      end if
                    fileDelete(FileName)
                      stopRun = "true"
                  else
                      stopRun = "false"
                      i = counter + 1
                  end if
              loop
Avatar billede eagleeye Praktikant
15. september 2003 - 09:15 #5
hvorfor er udfør kanppen så stor.!!

Eksvis ville jeg bruge do while i stedet for do unitl, da do while er det som man normalt bruger i andre sprog..:

  do until stopRun = "true"


Bliver til en af disse to:

  do while not stopRun = "true"

  do while stopRun = "false"
Avatar billede eagleeye Praktikant
15. september 2003 - 09:20 #6
men hvis den bare skal loop'e indtil den finder en fil så kan du lave koden sådan her, men en exit do som hopper ud det svare til at sætte stopRune til "true"


              counter = 2
              do while 1=1
             
                  fileNameNew = replace(fileName, "(1).jpg", "") & counter & ".jpg"
             
                  if not ifFileExistsServer (FileNameNew) then
                      Image.LoadImage(FileName)
                      Image.FileName = (FileNameNew)
                      if not Image.SaveImage then
                          SendBack("Filen kunne ikke komprimeres - prøv med en anden fil")
                      end if
                    fileDelete(FileName)
                    exit do
                  end if
                  counter = counter + 1
              loop
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel