Avatar billede tekno-hedningen Nybegynder
26. marts 2004 - 09:06 Der er 13 kommentarer og
1 løsning

ComboBox og textbox

hej xperter

er igang med et projekt hvor jeg bruger Comboboxe til at vælge den tekst der skal stå i en tekstbox. Den tekst der skal loades skal komme fra en tekstfil.
(f.eks. hvis man vælger "data1" i comboboxen, skal data1.txt åbnes i textboxen)
Men kan ikke helt få det til at virke...
nogen gode ideer?
Avatar billede kabbak Professor
26. marts 2004 - 09:27 #1
Private Sub Combo1_Click()
Dim Data As Variant, Str As String
Data = ""
Open "c:\" & Combo1.Text & ".txt" For Input As #1
Do Until EOF(1)
Line Input #1, Str
Data = Data & Str
Loop
Close #1
Text1.Text = Data
End Sub
Avatar billede tekno-hedningen Nybegynder
26. marts 2004 - 09:36 #2
kan ikke lige umiddelbart få det til at virke. Går ud fra den leder efter txt filen fra enten c:\ eller den mappe projektet er gemt i?  (får ihvertfald "file not found" som fejl...)
Avatar billede kabbak Professor
26. marts 2004 - 09:59 #3
virker fint her i VB6

Har du rettet navnet Combo1 til navnet på din Combo
Avatar billede joern Nybegynder
26. marts 2004 - 09:59 #4
Hej.

Som kabbak skriver søges tekstfilen i roden af C.  Det er jo bare et eksempel, du skal selvfølgelig angive den sti, hvor dine tekstfiler ligger.
Vælger du at tekstfilerne (alle altså) skal ligge hvor programmet er, skal du skrive App.Path & "\"  Men det virker kun når du eksekverer den kompilerede exe-fil, ikke nødvendigvis når du kører programmet fra VB-udviklingsmiljø'et.  App.Path er jo en relativ sti, i udviklings-miljø'et kræves en absolut sti.

Men der er en svaghed i kabbaks forslag.  Der indlæses kun en linie i comboboksen.

Men der er også meget bedre at bruge file FileListBox, den viser jo netop alle filer i en mappe.  Evt. med udvælgelse at kun .txt-filer.  Hvorledes du så angiver mappen afhænger af dit projekt.  Skal brugeren kunne skifte mellem mapper, må du også have en DirListBox. 

M.v.h.  Jørn
Avatar billede tekno-hedningen Nybegynder
26. marts 2004 - 10:17 #5
kabbak: jeg har ændret combo1 til hvad den hedder i mit program

joern: jeg prøvede at flytte min txt fil til c:\ , men det gav samme resultat da jeg testede programmet. App.path har jeg ikke prøvet endnu, det er fint nok at den bare henter fra C:\

...men da det er indholdet af txt filerne jeg vil have vist (gerne flere linier), skal der vel også ændres lidt på koden?
Avatar billede martin_moth Mester
26. marts 2004 - 10:31 #6
Prøv at se på koden - den læser ALLE linier fra filen ind i variablen Data, og skriver variablen til textboxen

Kør koden, og se om det ikke virker som det skal. Hvis ikke, så kom med evt. fejlmeddelse eller andre ønsker :o)
Avatar billede martin_moth Mester
26. marts 2004 - 10:32 #7
PS: Du kan teste hvilken fil du forsøger at åbne ved at skrive

Data = ""
Msgbox "c:\" & Combo1.Text & ".txt"    '<-------- NY LINIE
Open "c:\" & Combo1.Text & ".txt" For Input As #1
Avatar billede tekno-hedningen Nybegynder
26. marts 2004 - 10:33 #8
problemet er jo at jeg slet ikke kan komme til at læse fra tekst filen, da VB siger "file not found"  (ligemeget hvor jeg ligger min txt fil :P)
Avatar billede tekno-hedningen Nybegynder
26. marts 2004 - 10:35 #9
det er den rigtige fil der kommer frem i msgboxen (C:\data1.txt), det er også der jeg har lagt txt filen, men den åbnes ikke...
Avatar billede tekno-hedningen Nybegynder
26. marts 2004 - 10:52 #10
kabbaks kode virker fint...fandt ud af hvad problemet var  (havde selvfølgelig ikke slået "hide known file extentions" fra da jeg lavede txt filen, så den hed data1.txt.txt :)

nu skulle det virke fint, men hvis jeg vil have samme tekst struktur som i tekst filen (med linie skift osv.) hvordan gøres dette så?
Avatar billede martin_moth Mester
26. marts 2004 - 11:27 #11
Læs linie for linie, og smid et VbLf ind i mellem hver linie. Sæt textboxen til at have multiline (eller hvad det nu hedder)
Avatar billede martin_moth Mester
26. marts 2004 - 11:28 #12
Sorry - retter lige mig selv: & vbCrLf &

Altså

Data = Data & vbCrLf & Str
Avatar billede tekno-hedningen Nybegynder
26. marts 2004 - 11:58 #13
lækkert, takker :)

(ser ikke ud til at "& vbCrLf &" er nødvendigt dog :)
Avatar billede kabbak Professor
26. marts 2004 - 13:45 #14
ok godt i fandt ud af det. ;-))
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