problem z tworzeniem pliku .html

0

A wiec tak , kod troche nie ladny ale w czym problem , program ma pobierac z pliku tekstowego odnosniki do zdjec i zapisywac je w formie nowej strony html , wszystko dziala jak nalezy , plik sie tworzy itp jednak zeby zdjecia byly wyswietlane w przegladarce musze otworzyc plik w notatniku i na nowo zapisac jak html
tutaj kod:

private void button1_Click(object sender, EventArgs e)
        {

            FileStream fs1 ;
            StreamReader sw2;
            fs1 = new FileStream("e:\\sciezka_zdjec.txt",FileMode.Open);
            sw2 = new StreamReader(fs1);
            
           

            string url_zdj = sw2.ReadToEnd();
            string sciezka = null;
            string calosc = null;
                 

                 
        
            
                sw2.Close();

                string calosc2 = null;
            FileStream start;
            start = new FileStream("c:\\www\\" + textBox1.Text + ".html",FileMode.OpenOrCreate);
            StreamWriter startsw = new StreamWriter(start);
            char cs = Convert.ToChar('"');
            for (int i = 0; url_zdj.Length > i; i++)
            {

                
                char a = Convert.ToChar(url_zdj[i]);
                
                if (a == 42)
                {
                    calosc2 = calosc2 + Environment.NewLine+ calosc;
                    sciezka = null;
                    calosc = null;
                }
                else
                {
                    sciezka =sciezka + Convert.ToString(a);
                }
                
                calosc = "<img src=" + cs + sciezka  + cs + " />";

                
                
            }
            calosc2 = "<html>"+Environment.NewLine+"<body>"+Environment.NewLine + calosc2 + Environment.NewLine + "</body>"+Environment.NewLine+"</html>";

                
            startsw.WriteLine(calosc2);

            
            startsw.Close();

this.Close();
        } 
0

jak wygląda plik na wejściu?

0

Twój kod zawiera wiele, według mnie, nadmiarowych linii.

Konsolowy program...

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string inputPath = @"urls.txt";
            string outputPath = @"test.html";

            string[] urls = File.ReadAllLines(inputPath);

            StreamWriter writer = new StreamWriter(outputPath);

            writer.WriteLine("<html>");
            
            foreach (string line in urls)
                writer.WriteLine( String.Format("<img src=\"{0}\" />", line )); 
            
            writer.WriteLine("</html>");

            writer.Close();

            System.Diagnostics.Process.Start(outputPath); // Uruchamiam utworzony plik
        }
    }
}

... i przykładowy plik z jakimiś losowymi obrazkami z internetu.

http://i45.tinypic.com/bebzvb.jpg
http://i46.tinypic.com/swbmu1.jpg
0

HtmlAgilityPack - podziękować możesz później.

1
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var images = System.IO.File.ReadAllLines("input.txt");
            var output = new StringBuilder("<html><body>");
            foreach (var image in images)
                output.AppendFormat("<img src=\"{0}\"/>\r\n", image);
            output.Append("</body></html>");

            System.IO.File.WriteAllText("output.html", output.ToString());
        }
    }
}
0

wiem ze prasowanie tekstu jest idiotyczne , lecz niewiem dokonca jak dzialaja te biblioteki .
to co ty napisales da ten sam efekt co w moim programie specjalnie wykombinowany kod zwracajacy linijka po linijce zawartosc pliku tekstowego?

mam jeszcze jedno pytanie , majac sciezke pliku jak przekopiowac go w inne miejsce , niech nazwa bedzie ta sama , bo

 File.Copy("sciezka pobrana z pliku txt","sciezka gdzie ma isc"

nie dziala , program musi wczesniej utwozyc w danym miejscu plik o danej nazwie czy jak?

0

jeszcze male pytanko co dodac do File.Copy aby w wypadku napotkania tego samego pliku , o takiej samej nazwie po prostu je zamienilo?

pochopny post , file.exists rozwiazalo sprawe

1

Masz Intellisense. Wystarczy nacisnąć ctrl+spacja albo Shift+ctrl+spacja i masz listę wszystkich pól, właściwości, metod itp oraz listę argumentów. File.Copy(shift+ctrl+spacja i widzisz, że metoda ma dwa overloady, sprawdzasz pierwszy, nic ciekawego, sprawdzasz drugi (strzałka do dołu) i widzisz parametr... overwrite! Tak! File.Copy(source, destination, true) i nie trzeba dawać żadnego File.Exists.
Już nie mówię o sprawdzeniu w google, czy Copy umie nadpisywać pliki...

1 użytkowników online, w tym zalogowanych: 0, gości: 1