Avatar billede xenophobia Nybegynder
09. august 2002 - 17:02 Der er 14 kommentarer og
3 løsninger

Visual Basic

Hej
Jeg vil gerne have hjælp til 3 ting:

1) Hvordan laver jeg så når man klikker på en fil i en Filebox så bliver indholdet af filen vist i en Textbox?

2) Hvordan gemmer man filen?

3) Hvordan kan man skaffe sig oplysninger om filen (dato for oprettelse, størrelse, osv.)?

Mvh
Xenophobia
Avatar billede xenophobia Nybegynder
09. august 2002 - 17:32 #1
Er I der? :o)
Avatar billede joern Nybegynder
09. august 2002 - 17:41 #2
ja, hvordan?

Nu er det jo ikke alle filer, det giver mening at åbne i en textbox, billedfiler f.eks. blviver kun til en masse tegn - også de ikke printbare små ansigter :-)

Men ellers, hvis det er en tekst-fil indeholder 'filelist.filename' filens navn og den kan åbnes med

Open filename for input as #1

Om du så vil læse den én linie ad gangen eller i ét hug skal du skrive h.h.v.

Do while EOF(1) = False
line input #1, linie  'linie skal være dimmet som string forinden
Loop

For at skrive linien til en tekstbox

text1.text = text1.text & linie  ' 2. gang stod der jo noget i forvejen ,det skal ikke slettes

eller i ét hug:

text1.text=  Input(FileLen(filename), 1)

Husk at lukke filen med:  Close #1

For at gemme noget fra en tekstboks som en fil:

Open filnavn for output as #1
  print #1, text1.text
close #1

filstørrelse i bytes:  filelen(filename)

Dato og tid:  FileDateTime(filename)

Det var vist det.

Din VB indeholder online-hjælp:  Markér et ord (f.eks. 'Input' og tast F1)

M.v.h.  Jørn
Avatar billede xenophobia Nybegynder
09. august 2002 - 18:11 #3
Jeg prøver lige (er lidt grøn) :o)
Avatar billede xenophobia Nybegynder
09. august 2002 - 18:17 #4
Private Sub File1_Click()
Dim fil
fil = File1.Path & File1.FileName
Open fil For Input As #1
Text1.Text = Input(FileLen(fil), 1)
Close #1
End Sub

"fil" er den fuldesti på filen, fx c:\autoexec.bat


Det virker ik
Avatar billede xenophobia Nybegynder
09. august 2002 - 18:37 #5
- men det virker hvis man:

Private Sub File1_Click()

Label1.Caption = "File Selected: " & File1.Path & File1.FileName
Dim varfil, sizeoffile

'varfil = File1.Path & File1.FileName <--- Sådan var den før
varfil = "C:\autoexec.bat"

sizeoffile = Round(FileLen(varfil) / 1024, 0)
Label2.Caption = "Størrelse: " & sizeoffile & " Kbytes"

Open varfil For Input As #1
Text1.Text = Input(FileLen(varfil), 1)
Close #1

End Sub
Avatar billede martin_moth Mester
09. august 2002 - 19:25 #6
Prøv at lægge mærke til hvor VB stopper - altså hvor fejlen er.

Prøv at tjek hvad fil indeholder EFTER kørsel af linien

fil = File1.Path & File1.FileName

Det kan du f.eks. tjekke ved at skrive 
Msgbox "Fil indeholder : " & fil

(Eller du kan lave et watch på variablen, et breakpoint lige efter linien e.l. - der er masser af muligheder for at debugge)

Der vil du se at der sikkert mangler en backslash - og derfor virker ingenting. Således skulle du have skrevet

fil = File1.Path & "\" & File1.FileName

Generelt i VB: Læg mærke til hvor programmet stopper - og tjek om de variable du arbejder med indeholder det du regner med - der ligger fejlen 99% af gangene :o)
Avatar billede xenophobia Nybegynder
09. august 2002 - 20:45 #7
Takker, det virker med text-filer, men ved andre filer får jeg "input past end of file".
Den kan i øvrigt ikke forstå linieskift...!? Hvad gør jeg?
Avatar billede xenophobia Nybegynder
09. august 2002 - 21:01 #8
Har fundet ud af det med linierne
Avatar billede xenophobia Nybegynder
09. august 2002 - 21:20 #9
Men den brokker sig stadig - "input past end of file"
Avatar billede joern Nybegynder
10. august 2002 - 10:03 #10
xenophobia >>
Jeg har en del filer, der er databaser, hvor
hver post f.eks. har 20 felter, der i ascii-filen er adskilt med 'CRLF' (ascii 13 og ascii 10 - Enter og linieskift).
Jeg læser med en løkke:

Dim linie(20) as String

Open netsti & "filnavn" for input as #3
  Do while EOF(3) = False
    For a = 0 to 19
      Line Input #3, linie(a)
      listdata.additem linie(0) & " " & linie(1)
    Next a
  Loop
Close #3

Hvis der er kommet et 'hårdt linieskift' for meget så antallet af linier ikke mere er multiplum af 20, så går det galt.  Så får jeg også 'Input past end of File'.

Jeg har aldrig forsøgt at læse andre filer end ascii-filer med 'Open for Input'.
Billeder f.eks. skal jo læses som billeder ind i en picturekontrol og lydfiler skal afspilles.  Hvad er det for filer du vil læse ind som ikke er tekstfiler?

M.v.h.  Jørn
Avatar billede kantoraza Nybegynder
10. august 2002 - 12:01 #11
Jeg har lavet et eksempel til dig som kan det som du vil have og ikke mere eller mindre.

Download her:
http://www.friserverplads.dk/northcode/opgaver/filer.zip

(kig på koden)

Mvh.
NorthCode
Avatar billede xenophobia Nybegynder
10. august 2002 - 17:21 #12
Jeg skal nok lige kigge - men i filebrowser viser den jo alle filer. Kan man så ikke bestemme at den kun må vise nogle bestemte filtyper?
Avatar billede kantoraza Nybegynder
11. august 2002 - 09:41 #13
Jo bestemt. Markér fileboxen. Find "pattern" i properties menuen. Der står  *.*  i forvejen. Her kan du så skrive  *.txt  så er det kun tekst filer som du kan se. Hvis du vil se flere filer skriver du  ; i mellem. Eks.

File1.pattern = "*.txt;*.jpg;*.doc"

Mvh.
NorthCode
Avatar billede xenophobia Nybegynder
11. august 2002 - 12:24 #14
Jeg takker :o)
Avatar billede xenophobia Nybegynder
11. august 2002 - 12:27 #15
I øvrigt: Hvordan lukker man ens program? Jeg har brugt .visible = false, men det er jo ikke rigtigt
Avatar billede kantoraza Nybegynder
11. august 2002 - 12:34 #16
Du skriver bare:

End


eller "Unload me" først og så "End" bagefter.

;)
Avatar billede xenophobia Nybegynder
11. august 2002 - 12:44 #17
Takker....
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