login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Tekstfile importeren in C# (Opgelost)

Offline kenzo - 01/10/2009 11:17
Avatar van kenzoPHP beginner Hallo,

Weet iemand hoe ik een tekstfile kan importeren in C# waarna ik uit dit tekstbestand gegevens kan halen.


Ik moet bijvoorbeeld voor alle 0'en een image createn, en voor alle 1'en een ander image.

De tekstfile bestaat dus ook alleen maar uit 1'en en 0'en bijvoorbeeld.


Bedankt

10 antwoorden

Gesponsorde links
Offline Abbas - 01/10/2009 16:30
Avatar van Abbas Gouden medaille

Crew .NET
Met een StreamReader kan je tekstbestanden uitlezen en dan lees je elk karakter uit de string die gelezen werd. Als het een 0 is maak je de ene afbeelding, als het een 1 is de andere:

  1. StreamReader sr = new StreamReader(@"C:\bestand.txt");
  2. String content = sr.ReadToEnd();
  3. foreach(char c in content)
  4. {
  5. if (c.Equals('0'))
  6. {
  7. //Maak afbeelding
  8. }
  9. else
  10. {
  11. //Maak andere afbeelding
  12. }
  13. }

Hope this helps! 
Offline WebDevHobo - 02/10/2009 12:00 (laatste wijziging 02/10/2009 12:02)
Avatar van WebDevHobo Lid Om verder te gaan op wat titjes zegt, kan je ook dit doen:

  1. using (FileStream fs = new FileStream(@"C:\bestand.txt", FileMode.Open, FileAccess.Read))
  2. {
  3. using (StreamReader sr = new StreamReader(fs))
  4. {
  5. //string verwerking zoals titjes hierboven doet.
  6. }
  7. }
Het voordeel aan het gebruik van de FileStream klasse is dat je ietwat meer beveiliging kan toevoegen aan je programma. Het zou maar eens moeten gebeuren dat je bestand net niet bestaat, of dat je tijdens het coderen per ongeluk ergens een statement gezet hebt die het file schrijft of delete, wat je misschien niet wil(niemand is perfect, kan gebeuren).
Offline Abbas - 02/10/2009 14:45
Avatar van Abbas Gouden medaille

Crew .NET
Inderdaad, maar als je de code die ik gaf in een try-catch-finally blok gooit kan je ook alles netjes opvangen wanneer er iets foutloopt, eender wat. Niettemin maak je een goed punt! 
Offline kenzo - 05/10/2009 10:20 (laatste wijziging 05/10/2009 10:49)
Avatar van kenzo PHP beginner Hoe kan ik de positie van de pictureboxen geven die aangemaakt moeten worden zoals 1'en en 0'en staan?


als dit in bestand.txt staat:

  1. 010001101010001010
  2. 101010001010001010
  3. 100101001010111010


dan moet hij alle cijfers zo in pictureboxen veranderen (naast en onder elkaar).

alleen 0'en in andere pictureboxen dan 1'en
Offline Abbas - 05/10/2009 11:27 (laatste wijziging 05/10/2009 11:30)
Avatar van Abbas Gouden medaille

Crew .NET
Als het rij per rij moet gelezen worden gebruik je een while-loop met als conditie EndOfStream, zoiets:

  1. while(!sr.EndOfStream)
  2. {
  3. //doe iets
  4. }

Hierin kan je dan de lijn opsplitsen in karakters zoals ik hierboven al aangegeven, ongeveer dit:

  1. while(!sr.EndOfStream)
  2. {
  3. string strLijn = sr.ReadLine();
  4. foreach(char c in strLijn)
  5. {
  6. if (c.Equals('0'))
  7. {
  8. //Maak afbeelding
  9. }
  10. else
  11. {
  12. //Maak andere afbeelding
  13. }
  14. }
  15. }

En dan moet je natuurlijk voor elke 0 of 1 een PictureBox maken. Hierbij rekening houden met de locatie voor elke PictureBox:

  1. int xPos = 1;
  2. int yPos = 1;
  3. PictureBox pb;
  4. StreamReader sr = new StreamReader(@"C:\test.txt");
  5. while (!sr.EndOfStream)
  6. {
  7. string strLijn = sr.ReadLine();
  8. foreach (char c in strLijn)
  9. {
  10. pb = new PictureBox();
  11. if (c.Equals('0'))
  12. pb.Image = //Image voor 0
  13. else
  14. pb.Image = //Image voor 1
  15. pb.Location = new Point(xPos * 10, yPos * 10);
  16. this.Controls.Add(pb);
  17. xPos++;
  18. }
  19. yPos++;
  20. }

Hope this works out!
Offline kenzo - 05/10/2009 12:01
Avatar van kenzo PHP beginner ik krijg de fout dat this.Controls.Add(pb); niet werkt

Error 1 'EindOpdracht.Game' does not contain a definition for 'Controls' and no extension method 'Controls' accepting a first argument of type 'EindOpdracht.Game' could be found (are you missing a using directive or an assembly reference?)
Offline Abbas - 05/10/2009 12:21
Avatar van Abbas Gouden medaille

Crew .NET
De code heb ik getest in het Load event van een Form en dat werkt perfect. Je hebt die code toch niet in een aparte class ofzo ergens staan want dan gaat het inderdaad niet werken.
Offline kenzo - 05/10/2009 12:56 (laatste wijziging 05/10/2009 13:00)
Avatar van kenzo PHP beginner Ok, heb het aangepast en het werkt.


alleen krijg ik geen afbeeldingen te zien.


denk dat ik verkeerd werk met pb.Image = ....

wat kan ik daar het beste zetten?
Offline Abbas - 05/10/2009 13:18
Avatar van Abbas Gouden medaille

Crew .NET
Zoiets als:

  1. pb.Image = Image.FromFile("afbeelding.png");
Offline kenzo - 05/10/2009 13:24 (laatste wijziging 14/10/2009 11:48)
Avatar van kenzo PHP beginner Is het ook mogelijk om een positie van een bepaalde waarde te vinden?


Mijn poppetje staat op een bepaalde waarde (0 of 1), en nu wil ik dus als het poppetje op een 0 staat dat hij af is, bij 1 mag hij doorgaan...


als ik dit check met die while lus dan begint hij steeds linksboven, en niet de positie waar hij nu is
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.185s