Avatar billede bjarnefilm Juniormester
04. marts 2012 - 18:00 Der er 3 kommentarer og
1 løsning

Hent tekst tv til harddisk.

Jeg har strikket noget csharp kode sammen, der kan hente tekst tv ned på min harddisk.
Men der er problemer.
Jeg har prøvet noget forskelligt.

Jeg åbner tekst tv med linket:
http://www.dr.dk/drdk/moduler/ttv.aspx?ttvPage=100&kanal=1&type=v
Så taster jeg side 131 ind, og trykker retur.
Så kommer side 131 frem.
Linket er stadig:
http://www.dr.dk/drdk/moduler/ttv.aspx?ttvPage=100&kanal=1&type=v

Det er vistnok skrevet i javascript.
Jeg kender ikke det sprog, det minder om hieroglyffer.
Nu vil jeg gerne have hentet side 132 ned på harddisk.

Jeg holder musen hen over 'frem', vælger kopier genvej, indsætter linket i browserens adresselinie, så kommer teksten frem.
Hvis man derefter vælger 'vis kilde', så står der et sted:

<a href="/fttvimg/DR1/132_0001.map"><IMG BORDER="0" WIDTH="320" HEIGHT="375" SRC="/fttvimg/DR1/132_0001-243.gif" ISMAP USEMAP="#ttv"></a>

Linien med SRC="/fttvimg/DR1/132_0001-243.gif", det er teksten.
Efter som det er en gif, så burde man kunne downloade den.

Så kører jeg denne kode:

// Hent fra DR1.
WebClient henter = new WebClient();
string sti_fra = "http://www.dr.dk/fttvimg/DR1/132_0001-243.gif"  ;
string sti_til = @"C:\tekst-tv\tekst 2012-03-04\132";
henter.DownloadFile(sti_fra, sti_til);

Så henter programmet noget, og anbringer det i en mappe.
Så langt så godt.
Filen i mappen hedder '132', for det har vi selv valgt.

Så bliver det lidt mystisk.
Hvis jeg åbner min browser, og skriver adressen "C:\tekst-tv\tekst 2012-03-04\132" og retur, så kommer teksten frem.
Hvis jeg går ind i stifinder, omdøber filen til 132.html og dobbeltklikker, så kommer teksten frem i ca. 2 sekunder, derefter blinker skærmen og så står der kode over det hele.

Jeg synes selv det er meget indviklet.
Jeg har to spørgsmål.
Når csharp programmet danner en fil, dvs filen med navnet 132, har den så hentet gif'en, eller har den hentet et link til giffen?
Hvilken kommando i csharp, kan åbne filen 132, så teksten bliver stående på skærmen?

Nedenfor har jeg angivet hele koden.

MVH
Bjarne





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Printing;

namespace WindowsFormsApplication1
{
    public partial class tekst_tv_henter : Form
    {
        public tekst_tv_henter()
        {
            InitializeComponent();
        }

        // Erklær en tekst-skriver og sæt den til at pege på logbogen.
        TextWriter skriv = new StreamWriter("logbog.txt");

        // Denne tegnstreng indeholder dags dato.
        string dags_dato;

        private void tekst_tv_henter_Load(object sender, EventArgs e)
        {
            skriv.WriteLine(" Programmet 'Hent tekst tv' er startet.");
            skriv.WriteLine(" ");

            // Anbring dags dato i en tegnstreng.
            DateTime now = DateTime.Now;
            dags_dato = now.ToString("yyyy-MM-dd");
            skriv.WriteLine(" Dagens dato er: " + dags_dato);
            skriv.WriteLine(" ");

            // Hent fra DR1.
            WebClient henter = new WebClient();
            string sti_fra = "http://www.dr.dk/fttvimg/DR1/132_0001-243.gif";
            string sti_til = @"C:\tekst-tv\tekst 2012-03-04\132";
            henter.DownloadFile(sti_fra, sti_til);

            // Formen lukkes.
            skriv.WriteLine(" Programmet 'Hent tekst tv' er afsluttet.");
            // close the stream
            skriv.Close();
        }
    }
}
Avatar billede Spotgun Seniormester
04. marts 2012 - 18:45 #1
Da det er en .gif fil du henter, kan du ikke bare omdøbe den til .html og forvente at den kan åbnes i en browser. Det er derfor du ser det du kalder "koder", det er det reelle indhold af filen, hvis du f.eks. åbner den i notepad, så der er intet mystisk i det.
Du bør nok i stedet gemme filen som "132.gif" og ikke bare som "132".

Men for at svare på dine spørgsmål:

1) Den henter selve .gif filen, og ikke bare et link til den.

2) Du kan f.eks. indsætte en PictureBox kontrol på din form, og sætte dens ImageLocation til at pege på variablen "sti_til".
Avatar billede bjarnefilm Juniormester
04. marts 2012 - 19:27 #2
Det virker.
Jeg har rettet sti_til om til at gemme som en gif:
    string sti_til = @"C:\tekst-tv\tekst 2012-03-04\132.gif"
Nu gemmer programmet som 132.gif, og den kan jeg dobbeltklikke på og åbne. Her bagefter, kan jeg godt se, at man ikke kan gemme en gif, uden at skrive endelsen.
Den med PictureBox vil jeg prøve senere.
Smid et svar, så giver jeg point.
Tak for hjælpen.
Avatar billede Spotgun Seniormester
04. marts 2012 - 19:36 #3
Værsgo.
Avatar billede Slettet bruger
04. marts 2012 - 19:43 #4
Der findes i øvrigt en version af dr's ttv uden det er gemt som et billede:
http://www.dr.dk/cgi-bin/fttx1.exe/
Men det er nok ligegyldigt i denne sammenhæng. :)
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



IT-JOB

Udlændinge- og Integrationsministeriet

Contract Managers til kontrakt- og leverandørstyring

Politiets Efterretningstjeneste

Bliv AD-specialist hos PET

Dansk Sygeplejeråd

IT-teknisk medarbejder

AURA A/S

Data Engineer