Avatar billede cdull Nybegynder
15. december 2004 - 15:27 Der er 27 kommentarer og
1 løsning

Variabel i en streng?

Hvordan får jeg lagt en variabel ind i en streng, skal prøve at forklare det.

har en variabel der skal have værdien af en placering på harddisken

variabel = "c\\hej2\\hej" her skal variablen være, det skal have et nummer som stiger, hej1 hej2 hej3 osv. ".jpg"

Men hvordan får jeg sat variablen ind i denne streng uden at den ser den som tekst men som den variabel den er.


På Forhånd tak.
Avatar billede arne_v Ekspert
15. december 2004 - 15:39 #1
Måske noget som:

for(int i = 1; i <= 10; i++)
{
    strimg filename = "C:\\dir\\hej" + i + ".jpg";
    // brug filename
}
Avatar billede arne_v Ekspert
15. december 2004 - 15:39 #2
(du skal nok stave string bedre end mig ...)
Avatar billede cdull Nybegynder
16. december 2004 - 08:20 #3
Vil det der virke?
Det var også min første fremgangsmåde, men problemet var så bare at når den nåede til + i + lagde den en ekstra værdi i variablen i.

Det kan jeg ikke rigtigt bruge.
Avatar billede arne_v Ekspert
16. december 2004 - 08:26 #4
Ikke forstået.

Hvad kom dit filename til at indeholde og hvad skulle de indehold ?
Avatar billede cdull Nybegynder
16. december 2004 - 08:41 #5
altså jeg har ved onclick på en knap

string hej;
i++;

hej = "c:\\hej\\hej" + i + ".jpg";

problemet er så at gør jeg det her vil det give værdien i 2 gange.
Sådan så det i hvert fald ud da jeg testede det.
Værdien for hver klik viste sig at være 1 - 3 - 5 - 7 - 9 osv.
Avatar billede arne_v Ekspert
16. december 2004 - 08:58 #6
i++;

ligger kun en til.

Hvis i øges med 2 så skyldes det en fejl i program logikken.
Avatar billede cdull Nybegynder
16. december 2004 - 09:09 #7
Det er jeg klar over, det vi kom frem til gennem breaks og lidt test var at da den nåede til + i + lagde den endnu en oveni, jeg forstår det ikke rigtigt, men den hopper en over.

Men er den rigtige fremgangsmåde at bruge + i + til at smide en variabel midt i strengen?
For hvis det er vil jeg prøve at finde ud af om der kan være en anden grund til fejlen.
Avatar billede ladyhawke Novice
16. december 2004 - 10:01 #8
Det er fremgangsmåden, men kan du ikke lige poste koden der tildeler værdien, så kan vi måske give et hint
Avatar billede finger Nybegynder
16. december 2004 - 10:14 #9
det lyder som om han har gjort lidt ala

for(int i = 1; i <= 10; i++)
{
    string filename = "C:\\dir\\hej" + i + ".jpg";
    i++;
}

husk at den sidste linie i for-deklareringen lægger en til "i" også
Avatar billede cdull Nybegynder
16. december 2004 - 10:19 #10
i++;
           
if(i > 12)
i=1;
           
ShowMyImage(("C:\\Billede\\Biler\\Bil" +i+ ".jpg"), 192, 155);

Kører med en global variabel i så der skulle gerne lægges en ekstra værdi i i ved hver click på en knap.
Avatar billede ladyhawke Novice
16. december 2004 - 10:24 #11
men tænk lige over fingers forslag, det er et godt bud... Du ændrer vel løbende på den globale variabel, det har umiddelbart ikke nogat gøre med konverteringe af indholdet i variablen at gøre.
Avatar billede cdull Nybegynder
16. december 2004 - 10:26 #12
altså meningen med programmet er at et bilede skal skiftes for hvert klik på en knap. Der skal kun være et billede af gangen, forløkken vil jeg køre det hele igennem på en gang.
Avatar billede ladyhawke Novice
16. december 2004 - 11:07 #13
ja, men hvad er koden der opdaterer din globale variabel? Det er den er ikke virker som du vil have, ikke konverteringen af den...
Avatar billede cdull Nybegynder
16. december 2004 - 11:09 #14
Regnede da bare med at i++ klarede det.
Det virker også "lidt"
Avatar billede ladyhawke Novice
16. december 2004 - 11:16 #15
men hvis du tæller i op BÅDE lige hvor du sætte variablen og evt. i en generel for løkke, så skal det jo gå galt...

Altså: sætter du i nogensomhelst andre steder end lige ved din if? (tjek både løkker og anden kode)
Avatar billede ladyhawke Novice
16. december 2004 - 11:17 #16
Du kunne evt. bare prøve at kommentere i++ ud, for det kunne godt se om som om i tildeles 2 gange pr. runde
Avatar billede cdull Nybegynder
16. december 2004 - 11:32 #17
Det står ingen andre steder, har endda prøvet at ændre i til at hedder noget helt tredje. Men den laver det samme, variablen får nærmest dobbeltværdi.
Avatar billede ladyhawke Novice
16. december 2004 - 13:15 #18
Kom lige med koden for den løkke som tildeler værdien til i... ikke bare uddraget fra 10:19:02
Avatar billede cdull Nybegynder
16. december 2004 - 13:19 #19
der er ikke meget mere, i = 1; til at starte med og så får den en i++ ved klik. det er det.
Avatar billede ladyhawke Novice
16. december 2004 - 13:32 #20
er det så noget med at du reelt får 2 events, hmmmm lidt tricky, men kunne du ikke lægge hele event funktionen her (inkl. parametre og hvilken event det er du reagerer på), med mindre der er noget uofficielt i den...
Avatar billede todoonada Nybegynder
16. december 2004 - 13:39 #21
Her er den:

    private Bitmap MyImage ;
    public void ShowMyImage(String fileToDisplay, int xSize, int ySize)
    {

        // Sets up an image object to be displayed.
        if (MyImage != null)
        {
            MyImage.Dispose();
        }

        // Stretches the image to fit the pictureBox.
        pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage ;
        MyImage = new Bitmap(fileToDisplay);
        pictureBox1.ClientSize = new Size(xSize, ySize);
        pictureBox1.Image = (Image) MyImage ;
    }

    private void pictureBox1_Click(object sender, System.EventArgs e)
    {
        ShowMyImage(("C:\\britney.jpg"), 192, 155);
    }

    private void monthCalendar1_DateChanged(object sender, System.Windows.Forms.DateRangeEventArgs e)
    {
   
        //if(i = 0)   
        //i = month(date);
        taeller++;
        if(taeller > 12)
        taeller=1;
           
        ShowMyImage(("H:\\Wallpaper\\Kalender\\maaned" +taeller+ ".jpg"), 192, 155);
                       
    }

Hjælper dette?
Vi er 2 der sidder med det.
Avatar billede erikjacobsen Ekspert
16. december 2004 - 13:44 #22
Avatar billede ladyhawke Novice
16. december 2004 - 13:51 #23
rart med nogle der er kvikke
Avatar billede erikjacobsen Ekspert
16. december 2004 - 13:52 #24
Skal vi også lave et hack til løsning?

Start taeller med 2. Læg een til i hver ...DateChanged-metode. Hvis taeller er
lige vises billedet med taeller/2

Test på > 24, og sæt taeller til 1 som før.

Tror jeg nok ... virker sikkert indtil fejlen (hvis det er en fejl) bliver rettet ;)
Avatar billede cdull Nybegynder
24. maj 2005 - 10:54 #25
Lægger i nogle svar?
Avatar billede cdull Nybegynder
12. september 2006 - 09:51 #26
Smider i nogle svar ellers lukker jeg
Avatar billede arne_v Ekspert
12. september 2006 - 20:50 #27
det er vel Eriks point

om du kan få ham til at acceptere dem er en anden sag
Avatar billede erikjacobsen Ekspert
12. september 2006 - 20:55 #28
Ingen point til mig, tak.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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