Avatar billede Kim Neesgaard Seniormester
08. december 2004 - 22:15 Der er 29 kommentarer og
2 løsninger

Indsæt indhold af en tekstfil i en textbox

Jeg vil gerne indsætte indholdet af filen x.txt i textboxen Textbox1. Fra et andet indlæg kan jeg se, at det må være noget med:

Dim ?
StreamReader reader = new StreamReader("x.txt")
Textbox1.Text = reader.ReadToEnd().ToString()

men hvordan skal den helt nøjagtig være i vb?
Avatar billede basementjack Nybegynder
08. december 2004 - 22:19 #1
Dim filepath As String = Server.Mappath("x.txt")
        Dim sR As IO.StreamReader
        sR = IO.File.OpenText(filepath)
        Dim theText As String = sR.ReadToEnd()
        TextBox1.Text = theText
        sR.Close()
Avatar billede Kim Neesgaard Seniormester
08. december 2004 - 22:25 #2
Den siger

BC30188: Declaration expected.

til

sR = IO.File.OpenText(filepath)

Skal den have et namespace?
Avatar billede arne_v Ekspert
08. december 2004 - 22:30 #3
Mit gæt er at du bruger C# og basementjacks eksempel er i VB.NET !
Avatar billede arne_v Ekspert
08. december 2004 - 22:32 #4
Fordi koden ser meget korrekt ud.
Avatar billede Kim Neesgaard Seniormester
08. december 2004 - 22:32 #5
Jeg bruger vb: <%@ Control Language="VB" %>. Har det noget at sige, at koden står i en .ascx fil?
Avatar billede basementjack Nybegynder
08. december 2004 - 22:32 #6
Det skulle den ikke.. Men prøv at give den :

Imports System
Imports System.IO
Avatar billede basementjack Nybegynder
08. december 2004 - 22:33 #7
arne_v

neesgaard spørger jo efter noget i vb.. ;)
Avatar billede basementjack Nybegynder
08. december 2004 - 22:34 #8
Men hvis du ikke bruger codebebind, så skal det nok være denne istedet:

<%@ import Namespace="System.IO" %>
Avatar billede arne_v Ekspert
08. december 2004 - 22:35 #9
ja - men der må jo være en eller anden grund til at det ikke compiler
Avatar billede Kim Neesgaard Seniormester
08. december 2004 - 22:37 #10
Den giver stadig samme fejl.
Avatar billede arne_v Ekspert
08. december 2004 - 22:39 #11
Hvad siger den med

<%@ import Namespace="System.IO" %>

og

        Dim sR As StreamReader
        sR = File.OpenText(filepath)

?

(for nu at fortsætte lidt ud af dette spor)
Avatar billede basementjack Nybegynder
08. december 2004 - 22:39 #12
Ser din fil sådan her ud:

<%@ Page Language="VB" %>
<%@ import Namespace="System.IO" %>
<script runat="server">

    Sub Page_Load()
        Dim filepath As String = Server.Mappath("x.txt")
        Dim sR As IO.StreamReader
        sR = IO.File.OpenText(filepath)
        Dim theText As String = sR.ReadToEnd()
        TextBox1.Text = theText
        sR.Close()
    End Sub

</script>
<html>
    <head>
    </head>
    <body>
        <form id="enForm" runat="server">
          <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
        </form>
    </body>
</html>
Avatar billede basementjack Nybegynder
08. december 2004 - 22:40 #13
Altså udover det er control istedet for page...
Avatar billede Kim Neesgaard Seniormester
08. december 2004 - 23:13 #14
Koden er:

<%@ Control Language="VB" %>
<%@ import Namespace="System.IO" %>
<script runat="server">

    ' Insert user control code here
    '
    Sub Page_Load()
    Dim filepath As String = Server.Mappath("x.txt")
    Dim sR As IO.StreamReader
    sR = IO.File.OpenText(filepath)
    Dim theText As String = sR.ReadToEnd()
    TextBox1.Text = theText
    sR.Close()
    End Sub

</script>
<p>
    <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
    <!-- Insert content here -->
</p>

og det er som sagt en .ascx fil.

Den giver nu en ny fejlmelding:

System.Web.HttpException: Control '_ctl0_TextBox1' of type 'TextBox' must be placed inside a form tag with runat=server.
Avatar billede arne_v Ekspert
08. december 2004 - 23:17 #15
Det er vel også rigtigt - at en textbox skal være i en form ...
Avatar billede basementjack Nybegynder
08. december 2004 - 23:19 #16
arne_v siger noget.. ;)

En form med runat="server" er krævet, før den kan parse <asp:... />-tags..
Avatar billede Kim Neesgaard Seniormester
08. december 2004 - 23:22 #17
Ja - men jeg trak bare en tekstbox over i designarealet, men så skal man åbenbart selv tilføje formtaget. Når det er tilføjet, så virker det!!

Vil I smide et par svar?
Avatar billede basementjack Nybegynder
08. december 2004 - 23:22 #18
Nå ja.. Hvis den melder fejl som at den ikke kan finde x.txt, så skal denne ligge i samme mappe som den .aspx der loader din .ascx ind.
Avatar billede basementjack Nybegynder
08. december 2004 - 23:23 #19
Svar
Avatar billede arne_v Ekspert
08. december 2004 - 23:25 #20
giv alle points til basementjack
Avatar billede basementjack Nybegynder
08. december 2004 - 23:26 #21
Hov hov.. Vi deler altså her..
Avatar billede arne_v Ekspert
08. december 2004 - 23:29 #22
hvis du insisterer
Avatar billede Kim Neesgaard Seniormester
08. december 2004 - 23:31 #23
Delt. Og tak!
Avatar billede Kim Neesgaard Seniormester
09. december 2004 - 20:42 #24
Lige et tillægsspørgsmål: æ, ø og å vises ikke i tekstboksen (.txt filen oprettet med Notepad) - er der en vej ud af det?
Avatar billede arne_v Ekspert
09. december 2004 - 20:50 #25
Prøv:

sR = New IO.StreamReader(filepath, Encoding.Default)
Avatar billede Kim Neesgaard Seniormester
09. december 2004 - 21:14 #26
Perfekt - igen noget, der virker. Tak!
Avatar billede Kim Neesgaard Seniormester
09. december 2004 - 21:24 #27
Der står en grim, inaktiv scrollbar (dimmed da tekstens længde ikke berettiger en scrollbar) ude tilhøjre af tekstboksen - kan man få den væk?
Avatar billede Kim Neesgaard Seniormester
09. december 2004 - 22:28 #28
Jeg iler med et svar givet af vores søn: farvelæg scrollbaren i samme farve som baggrunden - se http://www.opfinderen.dk/sites/68/. Brug dem allesammen!
Avatar billede basementjack Nybegynder
10. december 2004 - 16:36 #29
Det virker kun i IE.. Og ansees ikke som validt ifølge w3c.

Men du kunne jo også give tekstboksen en mindre height og width, så scrollbar er nødvendigt, eller lave den til singleline?... :P
Avatar billede Kim Neesgaard Seniormester
11. december 2004 - 01:06 #30
Det pudsige er, at teksten slet ikke berettiger til en scrollbar og formodentlig derfor er den dimmed, men hvorfor den overhovedet skal vises, forstår jeg ikke. Der skal stå så meget tekst, at den skal være multiline.
Avatar billede Kim Neesgaard Seniormester
11. december 2004 - 01:10 #31
Men du har ret: det ser dødsygt ud i fx Opera.
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