Just nu i M3-nätverket
Jump to content

Hur kan jag ladda denna text?


Zero1

Recommended Posts

Jag har en text fil där det står följande:

 

Matrix, 1:45, Sci-Fi

Independence Day, 1:30, Sci-Fi

Film1, 1:25, Action

Film2, 1:34, Drama

 

Så min fråga är:

Hur kan jag ladda denna text så den hamnar i labels/textbox så det ser ut så här typ.

 

Ex.

Titel1: Matrix

Längd1: 1:45

Genre1: Sci-Fi

 

Titel2: Independence Day

Längd2: 1:30

Genre2: Sci-Fi

 

OSV. Jag har försökt men jag kan bara ladda hela strängen så det ser ut så här:

 

Titel1: Matrix, 1:45, Sci-Fi

Längd1:

Genre1:

 

Förstårn ni vad jag menar...jag behöver hjälp

 

**********

Flyttas till Visual Basic

 

/ Kristoffer - moderator för Programmering

**********

[inlägget ändrat 2002-11-08 18:48:38 av Kristianstad]

Link to comment
Share on other sites

Vilket programmeringsspråk är det du använder? Lite svårt å hjälpa om man inte vet... :)

 

uppdatering:

annars finns det i de flesta språk en funtion som heter Split() som delar upp en sträng i en array

./Telle

 

[inlägget ändrat 2002-11-08 09:57:55 av Telleluy]

Link to comment
Share on other sites

Vilket programmeringsspråk tänker du på ?

 

Du får läsa in en rad i taget i en loop och söka splitta upp raden med lite olika stränghanteringsfunktioner mha separeringstecknet ,

 

/TN

 

Link to comment
Share on other sites

OK, nånting sånt här då kan du kanske bygga vidare på:

Dim info,titel,lengd,genre as String
Dim n1,n2 as Integer

'info är en textrad tex "Matrix, 1:45, Sci-Fi"
n1=InStr(info,",")
n2=InStr(n1+1,info,",")
titel=Left(info,n1-1)
lengd=Mid(info,n1+2,n2-n1-2)
genre=Right(info,Len(info)-n2-1)

 

/TN

 

Link to comment
Share on other sites

Glenn Larsson

Använd Split(Data,",") istället å dra in index'et direkt in i labelsarna i stället.

 

Mvh

Glenn

 

("labelsarna" - Sådärja, nu har jag skapat diskussionsämne åt folk i "Språkvård" forumet också :o)

 

Link to comment
Share on other sites

Använd Split(Data,",") istället

Jo om det finns ja, jag har bara Visual Studio Basic.NET och var inte säker på om det fanns/finns i Visual Basic 6.

 

/TN

 

Link to comment
Share on other sites

Stefan B Karlsson

Här är exempelkod som fungerar om du skapar en commandoknapp och tre labels.

Lablarna ska heta MovieLength, MovieTitle och MovieGenre och Index-propertyn ska vara 0. Lägg lablarna brevid varandra i samma höjd. Programmet vill även ha den där textfilen i samma katalog som programmet körs, och filen ska heta filmer.txt:

Private Sub Command1_Click()
   'Definiera filnamn och öppna filen för läsning.
   myfile = App.Path & "\filmer.txt"
   Open myfile For Input As #1
   movies = 0

   'Läs rad för rad tills filen är slut
   Do Until EOF(1)
       'Lagra raden i dummuvariabeln.
       Line Input #1, dummy
       'Splitta upp innehållet till en array
       film = Split(dummy, ",")

       'För varje ny film i filen skapar vi en ny
       'uppsättning labels som vi lägger under dom tidigare.
       'Detta behövs inte göras första gången, för då använder vi dom som redan finns på formuläret.
       If movies <> 0 Then
           'Skapa nya labels
           Load MovieTitle(movies) 'Ladda ny instans.
           'Positionera den nya labeln under den tidigare labeln samt gör den synlig
           MovieTitle(movies).Move MovieTitle(movies - 1).Left, MovieTitle(movies - 1).Top + MovieTitle(movies - 1).Height + 50
           MovieTitle(movies).Visible = True

           Load MovieLength(movies)
           MovieLength(movies).Move MovieLength(movies - 1).Left, MovieLength(movies - 1).Top + MovieLength(movies - 1).Height + 50
           MovieLength(movies).Visible = True

           Load MovieGenre(movies)
           MovieGenre(movies).Move MovieGenre(movies - 1).Left, MovieGenre(movies - 1).Top + MovieGenre(movies - 1).Height + 50
           MovieGenre(movies).Visible = True

       End If


       'Lägg ut värdena i de indexerade labelarna.
       MovieTitle(movies).Caption = film(0)
       MovieLength(movies).Caption = film(1)
       MovieGenre(movies).Caption = film(2)
       movies = movies + 1
   Loop
   Close #1

End Sub

 

 

På detta sätt laddas det in nya labels i runtime för varje rad i filen. Det finns ju bättre sätt att visa en lista med filmer, men jag kunde inte lista ut hur du ville ha det utifrån din problembeskrivning. Skriv in om du har andra önskemål på gränssnittsprogrammeringen..

 

 

mvh /

Stefan Karlsson

ITmaskinen.se

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...