Gå til innhold

Tekst fra to tekstbokser


Anbefalte innlegg

Videoannonse
Annonse

Det spørs hva du skal bruke for å lagre teksten på internet. Er det en FTP-server? Eller en vanlig HTML-server? Jeg antar det første, siden det er den beste å bruke i sånne tilfeller. Det finnes mangen metoder å lagre ting på en FTP-server via vb, men den letteste er ikke gjennom winsock, men noen interne API-er.

 

Uansett, den metoden krever at du lagrer teksten på pcen, derfor bruk denne koden for å gjøre det:

 

Open App.Path & "\Buff.txt" For Output As #1
Print #1, Text1.Text
Print #1, Text2.Text
Close #1

 

Her antar jeg at de to tekstboksene heter Text1 og Text2. Så, når du har lagt den inn trenger du å kopiere disse deklareringene (legges inn etter Option Explict som er i begynnelsen av form-kodene og før de første sub-ene):

 

Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Long
Private Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hConnect As Long, ByVal lpszLocalFile As String, ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean

Const FTP_TRANSFER_TYPE_UNKNOWN = &H0
Const FTP_TRANSFER_TYPE_ASCII = &H1
Const FTP_TRANSFER_TYPE_BINARY = &H2
Const INTERNET_DEFAULT_FTP_PORT = 21               ' default for FTP servers
Const INTERNET_SERVICE_FTP = 1
Const INTERNET_FLAG_PASSIVE = &H8000000            ' used for FTP connections
Const INTERNET_OPEN_TYPE_PRECONFIG = 0                    ' use registry configuration
Const INTERNET_OPEN_TYPE_DIRECT = 1                        ' direct to net
Const INTERNET_OPEN_TYPE_PROXY = 3                         ' via named proxy
Const INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4   ' prevent using java/script/INS
Const MAX_PATH = 260
Const PassiveConnection As Boolean = True

 

Denne koden her kan så brukes for å laste opp filen din til FTP-serveren:

 

   Dim hConnection As Long, hOpen As Long, sOrgPath  As String
   hOpen = InternetOpen("FTP-Client program", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)

   'connect to the FTP server
   hConnection = InternetConnect(hOpen, "your ftp server", INTERNET_DEFAULT_FTP_PORT, "your login", "your password", INTERNET_SERVICE_FTP, IIf(PassiveConnection, INTERNET_FLAG_PASSIVE, 0), 0)

   'create a buffer to store the original directory
   sOrgPath = String(MAX_PATH, 0)
   'get the directory
   FtpGetCurrentDirectory hConnection, sOrgPath, Len(sOrgPath)
   FtpPutFile hConnection, App.Path & "\Buff.txt", "Buff.txt", 
   InternetCloseHandle hConnection
   InternetCloseHandle hOpen

 

Er det ikke FTP du snakker om, bør du søke etter POST koden for HTML, den er litt annerledes, og, etter min mening, ikke så praktisk som FTP. Tross alt var jo FTP utviklet til nettopp å sende filer, i motsettning til HTML.

Lenke til kommentar

Beklager, det hadde sneket seg inn en skrivefeil...

 

Bytt ut den ene FtpPutFile koden med dette:

 

FtpPutFile hConnection, "C:\Buff.txt", "Buff.txt", FTP_TRANSFER_TYPE_UNKNOWN, 0

 

Jeg fatter ikke hvordan det kan ha skjedd. :dontgetit:

Du har sikkert sett det, men du må selvsakt også gjøre noe på denne linja:

 

  'connect to the FTP server
  hConnection = InternetConnect(hOpen, "your ftp server", INTERNET_DEFAULT_FTP_PORT, "your login", "your password", INTERNET_SERVICE_FTP, IIf(PassiveConnection, INTERNET_FLAG_PASSIVE, 0), 0)

 

"your ftp server skal selvsakt skiftes ut med "home.no" hvis du bruker den, og "your login" med loginnavnet. "your password" med passordet ditt.

Lenke til kommentar
Funker det å gjøre akkurat det der på home.no? det er jo bare et html-server, men man uploader jo filene via ftp :roll: eller er jeg ute å sykler nå?

Nei da, det er helt riktig. Filene lastes opp via FTP, og distribueres via HTTP.

 

Merk at det ikke er noe som heter en «HTML-server.» HTML er et utvekslingsformat for hypertekst, og selv om slike filer typisk overføres via HTTP er det ingenting i veien for at de kan distribueres på andre måter også, f.eks. via FTP eller e-post.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...