Læsning fra fil

Tags:    asp.net

<< < 12 > >>
Hej Alle.

Jeg er i øjeblikket igang med at prøve at lave en lille ASP side.
På siden har jeg nogle tabeller 1-8, hvor jeg prøver at komme ord ind i tabellerne læst fra en fil, hvor ordne er separeret med #.

Indtil videre har jeg lavet en metode der opretter tabellen og jeg er nået til at, få de rigtige ord/sætninger ind i de rigtige tabeller, men er gået i stå.

Fold kodeboks ind/udCSharp kode 

path er den sti filen ligger på. Og filen indeholder
test#test2#test3

Nogen der kan sige mig om jeg er på rette spor?

Tak på forhånd



Indlæg senest redigeret d. 24.07.2011 00:14 af Bruger #16700
15 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Du skal i din codebehind kigge efter metoden Page_load, det er der du skal have dette kode. Det kode der kører her sker lige inden siden vises.

Du skal have en kontrol på din side, fx en label. Tag og få en label til at virke inden du begynder på tabeller, datalister grids osv. Drag en ny label ind på din form fra din toolboks (i venster side) i din Page_load skriver du så at label'ns tekst skal være din "line" variabel, noget a'la dette:

protected void Page_Load()
{
string data = "";
Using(StreamReader reader = new StreamReader("minfil.txt")
{
data = reader.ReadToEnd();
}
Label1.Text = data;
}

Dette virker ikke, det er skrevet efter hukommelsen, men kan du se princippet?



Hej Brian.

Tak for dit svar. Jeg har ikke noget problem med at skrive min fils indhold til en tabel. Problemet er når jeg når til
Fold kodeboks ind/udCSharp kode 

sektionen af koden. Så siger den, at for hver streng separeret med # er = lines. Som jeg forstår det.
Mit problem er at gøre den første line i lines = table1. Nr 2 line i lines = table2 o.s.v. Hvis jeg bare siger table1 = line så tager den det sidste ord/sætning i min fil separeret med # og ligger den i tabellen og "glemmer" de andre.

Håber det giver mening.



Hvorfor ikke bruge XML sammen med LINQ to XML i stedet?

Et eksempel:

Fold kodeboks ind/udCSharp kode 


og XML filen:

Fold kodeboks ind/udXML kode 




Hvorfor ikke bruge XML sammen med LINQ to XML i stedet?


Hvis man har noget der er SÅ tæt på HTML, altså XML, kan man så ikke lige så godt have det liggende som ren HTML og så tilføje det direkte til fx en Literal control? Så kan det pludselig gøres med en linje kode eller to, i stedet for :)

Mvh.

Kasper (TSW)



Hejsa Cristian

EDIT: Efter lige at have læst lidt kommentarer fandt jeg ud hvad du søgte og mente, så lige et lille andet stykke kode:

Fold kodeboks ind/udCSharp kode 

Her får du de linier med det der skal ind i tabellen - dvs [test#test2#test3#][testlinie2-1#testlinie2-2#] - og disse skal så splittes for hver række du sætter ind i tabellen.

Fold kodeboks ind/udCSharp kode 

Håber det hjælper lidt :)

-------------------------------------------------------------------------------------------------------

Jeg er ikke helt sikker på jeg forstår din struktur i din fil du skal læse.
Er det "test#test2#test3#" i første linie der indikerer at dette skal føres ind i de tre første kolonner og hvis linie 2 er "testlinie2-1#testlinie2-2#" så skal der kun fyldes noget i kolonnerne 1 og 2 i anden række?
For nemheds skyld antager jeg at du blot vil læse alle sammen og proppe dem ind i kolonnerne som de kommer.

Hvis jeg var dig så ville jeg gøre følgende:
I ASPX-filen (.aspx) ville jeg i min markup have en asp.net-tabel jeg kunne arbejde i fra min codebehind:
Fold kodeboks ind/udCSharp kode 


Derefter ville jeg lave metoden der skal læse fra filen:
Fold kodeboks ind/udCSharp kode 

Denne skulle gerne give en liste med [test][test2][test3]

I din page_load ville jeg så putte indholdet ind i tabellen:
Fold kodeboks ind/udCSharp kode 

Nu får du alle data i den fil ud på samme række (første række) i din tabel, men hvis du gerne vil have det splittet for fx 3 rækker så gør du følgende:

Fold kodeboks ind/udCSharp kode 

Koden burde virke, men er taget nogenlunde fra memory så hvis der er nogle småfejl så meld tilbage så kan jeg eller en af de andre dygtige folk herinde nok hjælpe dig videre hvis det ikke er så åbentlyst at du selv kan løse det :)

Happy coding



Indlæg senest redigeret d. 26.07.2011 07:44 af Bruger #16651
Hvis man har noget der er SÅ tæt på HTML, altså XML, kan man så ikke lige så godt have det liggende som ren HTML og så tilføje det direkte til fx en Literal control? Så kan det pludselig gøres med en linje kode eller to, i stedet for :)


Touché.

Codebehind
Fold kodeboks ind/udCSharp kode 


Markup
Fold kodeboks ind/udHTML kode 




Hej alle.

Takker for alle jeres svar.

Laurits.
Jeg er ikke helt sikker på jeg forstår din struktur i din fil du skal læse.
Er det "test#test2#test3#" i første linie der indikerer at dette skal føres ind i de tre første kolonner og hvis linie 2 er "testlinie2-1#testlinie2-2#" så skal der kun fyldes noget i kolonnerne 1 og 2 i anden række?
For nemheds skyld antager jeg at du blot vil læse alle sammen og proppe dem ind i kolonnerne som de kommer.


Strukturen i filen er
indholdTilCelle1Table1#indholdTilCelle2Table1#indholdTilCelle3Table1#indholdTilCelle4Table1#indholdTilCelle5Table1#indholdTilCelle6Table1#indholdTilCelle7Table1#
indholdTilCelle1Table2#indholdTilCelle2Table2#indholdTilCelle3Table2#indholdTilCelle4Table2#indholdTilCelle5Table2#indholdTilCelle6Table2#indholdTilCelle7Table2#
og så videre. Hvor en linje er lig med en tabel.

Det er meningen at alle cellerne for de forskellige tabels skal læses og vises ved en pageload. Håber det giver mening.



Hej alle.

Takker for alle jeres svar.

Laurits.
Jeg er ikke helt sikker på jeg forstår din struktur i din fil du skal læse.
Er det "test#test2#test3#" i første linie der indikerer at dette skal føres ind i de tre første kolonner og hvis linie 2 er "testlinie2-1#testlinie2-2#" så skal der kun fyldes noget i kolonnerne 1 og 2 i anden række?
For nemheds skyld antager jeg at du blot vil læse alle sammen og proppe dem ind i kolonnerne som de kommer.
Strukturen i filen er
indholdTilCelle1Table1#indholdTilCelle2Table1#indholdTilCelle3Table1#indholdTilCelle4Table1#indholdTilCelle5Table1#indholdTilCelle6Table1#indholdTilCelle7Table1#
indholdTilCelle1Table2#indholdTilCelle2Table2#indholdTilCelle3Table2#indholdTilCelle4Table2#indholdTilCelle5Table2#indholdTilCelle6Table2#indholdTilCelle7Table2#
og så videre. Hvor en linje er lig med en tabel.

Det er meningen at alle cellerne for de forskellige tabels skal læses og vises ved en pageload. Håber det giver mening.
Så hver tabel har kun en række i sig med en masse celler i?
Eller mener du at hver linie faktisk er en række i samme tabel?
For så går jeg ud fra at der er et fast/statisk antal tabeller der er indhold for og ikke noget med dynamisk oprettelse af tabeller?

Hvad jeg umiddelbart kan komme i tanke om er følgende:
Din FileToRead.txt: (denne ligger i roden af din applikation)
Fold kodeboks ind/udKode 


I din aspx (.aspx) har du i markup:
Fold kodeboks ind/udHTML kode 


Så laver du en klasse fx kaldet TableHelper.cs med metoden:
Fold kodeboks ind/udCSharp kode 


Og i din page_load (.aspx.cs) har du:
Fold kodeboks ind/udCSharp kode 

Håber det hjalp.
Prøv det af og meld fejl/mangler tilbage. Sidder på min kærestes bærbar så kan ikke lige teste det af, og i morgen tager jeg på ferie til grækenland så hvis jeg ikke når at få testet af eller/og hjulpet dig med eventuelle fejl så overlad det til de andre kloge hoveder herinde - de skal nok kunne hjælpe dig :)



Indlæg senest redigeret d. 28.07.2011 21:59 af Bruger #16651
Prøver igen.

Det kan godt være vi har snakket forbi hianden. Når jeg mener en tabel mener jeg

<tr>

<td></td>

</tr>

hvor <td> er lig med en tabel, men i virkeligheden er det måske en række i tabellen? Jeg har ikke den vilde forstand på hvad er hvad. Håber at dette giver mening.

Og hav en god ferie.



En tabel er et <table> tag. Den har X antal rækker, bestående af <tr> (Table Row) tags, og hver række i tabellen kan have en række celler, som så er <td> (Table Data) tags. Det er sådan den lidt simplificerede forklaring. Så nej, <td> er ikke lig med en tabel :)

Mvh.

Kasper (TSW)



<< < 12 > >>
t