Avatar billede mhoffmann Nybegynder
05. november 2006 - 23:34 Der er 10 kommentarer og
1 løsning

Variable gemt i tekst fil

Hej

På min asp side har jeg lavet en variabel der hedder kunde. Den skifter indhold afhængig hvilken kunde webside man er inde på.

Jeg har en tekst der så siger "Velkommen til websiden for <%= kunde %>". Det virker fint og den skriver kundens navn på websiden.

Men nu vil jeg gerne have den tekst ud og ligge i en tekst fil, og så hive den ind på websiden fra tekst filen. Men hvis jeg ligger teksten ud i tekst filen (på samme måde som den står i ASP filen, dvs. med <%= kunde %>) så skriver den ikke kunde variablen når jeg kører websiden. Den kommer ikke med en fejl, den undlander simpelthen bare at skrive noget der hvor kunde variablen står.

Hvordan kan jeg bruge sådan en variabel fra en tekst fil?
Avatar billede cpufan Juniormester
05. november 2006 - 23:42 #1
hvordan henter du tekstfilen?

som en include eller med fso?
Avatar billede mhoffmann Nybegynder
06. november 2006 - 00:02 #2
Jeg brugte fso, men har lige prøvet med include og der virker det.

Men hvordan gør man det med fso?
Avatar billede cpufan Juniormester
06. november 2006 - 00:12 #3
Avatar billede mhoffmann Nybegynder
06. november 2006 - 00:19 #4
Jeg kan ikke se hvordan det link hjælper mig.

Jeg kan godt finde ud af at læse og tekst fra en tekst fil via fso, jeg kan bare ikke få den til at kalde en variable som står i tekstfilen, jf. mit spm. ovenfor.
Avatar billede cpufan Juniormester
06. november 2006 - 01:18 #5
ok

jamen så er det

<%
Set fs=Server.CreateObject("Scripting.FileSystemObject")

Set f=fs.OpenTextFile(Server.MapPath("testread.txt"), 1)
Response.Write"Velkommen til hjemmesiden " &(f.ReadAll)
f.Close

Set f=Nothing
Set fs=Nothing
%>

din textfil skal så bare indeholde teksten, men uden <%=  og %>
Avatar billede nerosdk71 Nybegynder
06. november 2006 - 15:33 #6
Jeg er lidt nysgerrig. hvad er formålet med at have kundenavnet liggende i en tekstfil?

Kunden logger vel ind, og navnet ligger vel i en database?

Hvis du skal gemme navnet hvorfor gemmer du det så ikke i en Session-variabel?

Når brugeren logger ind, slås der op i databasen efter navnet. Det gemmes i en Session-variabel, og på forsiden laves (c#):

<%=(Session["kundenavn"].ToString())%>

så har du navnet indtil sessionen afbrydes.
Avatar billede mhoffmann Nybegynder
06. november 2006 - 18:24 #7
Hej nerosdk71:

Jeg har heller ikke kundenavnet liggende i en txt fil, kundenavnet ligger netop i en db som du forslår. Og når kunden logger ind henter jeg det relevante kundenavn ud fra databasen og gemmer i en variable.

Problemet opstår når jeg har en tekst (f.eks. velkommen teksten). Den vil jeg gerne ligge i en txt fil, så admin senere kan rette i denne velkommen tekst via et adm modul. Men hvis jeg henter txt filen ind via fso, så kan jeg ikke få den til at hente min kunde variable. Normalt henter jeg den ved at skrive <%= kunde %> i min html kode. Den asp kode har jeg så indsat i txt filen sammen med resten af velkommen teksten, men det virkede ikke.

Men hvis jeg includer txt filen istedet for at indklæse den via fso virker det.
Avatar billede nerosdk71 Nybegynder
06. november 2006 - 19:01 #8
ok, kan godt se hvad du siger, men du kunne alternativt gøre et af to:

1) Gemme konfigurationssettings i web.config filen. Det betyder at du kan lave et lille smart interface til administratorne (specielt vil det være stærkt hvis du laver et rollebaseret web-site). Det betyder at du på din velkommenside kan have:

<%=(ConfigurationManager.AppSettings["Velkommen"])%>

Jeg sidder lige med min datter og hygger mig ligenu, men bær over med mig. Når du laver et adminstratormodul, så er det lige så let at gemme
Avatar billede nerosdk71 Nybegynder
06. november 2006 - 19:06 #9
ups. Skriver lige videre her:

det er lige så let at gemme:

ConfigurationManager.AppSettings["Velkommen"]=textbox1.text;

Somsagt der kan være små fejl i min syntax :-)

Dette er lavet udfra asp.net 2.0. Hvis du bruger en tidligere version er jeg ikke sikker, men det jeg ville gøre er det andet jeg kan foreslå:

2) Lav en database med tekster til dit website. Jeg har det selv på en del web-sites jeg har lavet (er nu gået over til metode 1), og det jeg har gjort er at jeg har lavet en standarddatabase, en connection i web.config og så en class, der har en funktion der returnere en tekst. Det kan f.eks. være en funktion der hedder GetText.

Funktionen skal returnere en string. Så kan man bruge den på alle de websider man har, og en forside kan man f.eks. skrive:

<%=(GetText("velkommen")%>

Så har man en Sql-sætning der hedder:

String sql= "Select * from texts where ID='"+Velkommen+"'";

Jeg er sikker på at det virker bedre end at hente filer.

Jeg laver gerne et eksempel til dig når min datter er lagt i seng.

søren
Avatar billede cpufan Juniormester
06. november 2006 - 19:08 #10
han kører vel traditionel asp 3.0 siden han spørger i den kategori
Avatar billede mhoffmann Nybegynder
06. november 2006 - 21:53 #11
Nej søren.

Mange tak for dine indlæg. Jeg er dog ikke helt så skarp i ASP at jeg kan følge med i alt du skriver :-) Derudover bruger jeg blot ASP og ikke ASP.NET.

Men som sagt, jeg har fået det til at virke nu, ved at include tekstfilen istedet for at bruge fso, så du behøver ikke bruge mere tid på det.

Men tak for dine indlæg.

Mvh

Martin
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
Kurser inden for grundlæggende programmering

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