Bakitafrasnikaren Skrevet 17. april 2012 Del Skrevet 17. april 2012 Jeg har 10 bilder som jeg skal bruke i sammenheng med et c#-program. Bildene har filnavn som "bilde1", "bilde2", "bilde3" osv... helt til "bilde10". Dersom jeg har lyst til å behandle alle disse bildene i en loop, finnes det en måte jeg kan gjøre det på? Tullekode for vise problemet: for (i = 0; i<10; i++) (Image + i).Width = 200; Takk for all hjelp! Lenke til kommentar
gurugutten Skrevet 17. april 2012 Del Skrevet 17. april 2012 Hva med å legge filnavnene/bilde objektene i en liste og så benytte løkken til å hente det objektet på indexen som refererer til telleren? Lenke til kommentar
Hårek Skrevet 17. april 2012 Del Skrevet 17. april 2012 To alternativer: string filnavn = "bilde" + i + ".jpg"; string filnavn = string.Format("bilde{0}.jpg", i); Lenke til kommentar
GeirGrusom Skrevet 17. april 2012 Del Skrevet 17. april 2012 (endret) public class ImageLooper { private readonly List<Image> images; public ImageLooper(string directory) { images = (from file in System.IO.Directory.GetFiles("abc", "*.jpg") let regMatch = Regex.Match(file, "image(<?Index>[0-9]+)", RegexOptions.IgnoreCase) where regMatch.Success orderby int.Parse(regMatch.Groups["Index"].Value) select System.Drawing.Image.FromFile(file)).ToList(); } public Image GetImageWraparound(int index) { if(index < 0) index = (Images.Length - 1) - Math.Abs(index); index %= Images.Length; return images[index]; } } Skrevet litt rett fra hodet, så vet ikke om det funker. Endret 17. april 2012 av GeirGrusom Lenke til kommentar
Bakitafrasnikaren Skrevet 20. april 2012 Forfatter Del Skrevet 20. april 2012 public class ImageLooper { private readonly List<Image> images; public ImageLooper(string directory) { images = (from file in System.IO.Directory.GetFiles("abc", "*.jpg") let regMatch = Regex.Match(file, "image(<?Index>[0-9]+)", RegexOptions.IgnoreCase) where regMatch.Success orderby int.Parse(regMatch.Groups["Index"].Value) select System.Drawing.Image.FromFile(file)).ToList(); } public Image GetImageWraparound(int index) { if(index < 0) index = (Images.Length - 1) - Math.Abs(index); index %= Images.Length; return images[index]; } } Skrevet litt rett fra hodet, så vet ikke om det funker. Jeg kunne ca 10 % av syntaksen i det innlegget Men takk for innsatsen! Er det slik at denne linjen her henter bildene manuelt? images = (from file in System.IO.Directory.GetFiles("abc", "*.jpg") Det jeg til syvende å sist prøver å oppnå, er å slippe å skrive inn bildenavnene én for én, uansett om det er i defineringen av arrayet. Oppgaveteksten i oppgaven sier at jeg skal tilrettelegge det slik at det blir lett å legge til flere bilder i programmet, selv om det i utgangspunktet kun gjelder fem forskjellige. To alternativer: string filnavn = "bilde" + i + ".jpg"; string filnavn = string.Format("bilde{0}.jpg", i); Var det noe slik du tenkte? Int16 bildeantall = 5; string[] filnavn = new string[5]; for (Int16 i = 0; i<bildeantall; i++) { filnavn[i] = "Image" + i + ".jpg"; filnavn[i].ImageURL = "URL-til-bildet-mitt"; filnavn[i].Width = 200; } Det virket dessverre ikke Lenke til kommentar
Hårek Skrevet 20. april 2012 Del Skrevet 20. april 2012 Hvordan kan du bruke ImageURL og Width på en string? Det virker ikke fordi det kan ikke kompilere. Du må lage et Image objekt og bruke FromFile(string). 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å