Hur sparar man innehållet i en combobox?? Hej. Är rätt ny på VB Hej, ok, ja va lite för kort:) Rekommenderar att du har textfilen i samma mapp som din applikation ligger i He, det var en rolig kod detta. VB hänger sig varje gång jag ska prova den. >Rekommenderar att du har textfilen i samma mapp som din applikation ligger i Det var en mystisk kommentar. <b>Om programmet funkar från den mapp som den köres , så skall tillhörande textfil ligga där också.</b> Oki det är många trix med Administratörsfrågor och rättigheter. Så länge det rör sig om filer som användaren inte ska skriva till håller jag med, det är rent och snyggt med alla filer på samma plats. Tyvärr fungerar det inte med skrivbara filer. Allt handlar om att man ska kunna konfigurera upp säkra miljöer som användarna inte kan sabotera och att all användaspecifik information ska finnas på samma ställe. På så sätt kan man lätt byta dator eller använda sig av "roaming profiles" där en användare alltid får sina egna inställningar och filer oavsett vid vilken dator i nätverket han befinner sig. tyvärr, verkar inte detta fungera för mig, får prova med en listbox istället för comboboxen <b>Enligt Microsofts rekommendationer skall man spara data i "Application Data" mappen i användarprofilen. Då fungerar programmet även för dem som inte är administratörer.</b> Ok, Har en annan fråga. Använd aldrig fasta sökvägar till filer, kan skilja sig från dator till dator Functionen GetFolderPath returnerar sökvägen för vald specialfolder tex application Data.En liten fråga
Open "länken" For Output As #2
Write #2, Combobox
Close #2
funkar inte så bra, något som fattas??Sv: En liten fråga
<code>
Dim fnum
fnum = FreeFile
Open FILNAMN For Output As #fnum ' rensar hela filen och skriver längst upp
Print #fnum , STRÄNG
Close #fnum
</code>
<code>
Dim fnum
fnum = FreeFile
Open FILNAMN For Append As #fnum ' skriver längst ner
Print #fnum, STRÄNG
Close #fnum
</code>
Detta funkar.
MVH / BSv:En liten fråga
Undrar var jag ska lägga koden, för det som står i comboboxen ska sparas och öppnas när man stänger resp. startar programmet. Och var i koden skriver man vart txt- filen ska sparas någonstans???
Tack på förhand!Sv: En liten fråga
FILNAMN = "c:\blabla\test.txt"
STRÄNG= combo1.text"
Observera att du endast spar det som står synligt i comboboxen.
koden ska ligga i "form_queryunload" för att spara.
bara rätt upp o ner i den händelsen.
När du startar ska du ju läsa, inte skriva, ska du läsa in det som står i filen in i boxen?
Berätta gärna lite vad du vill ha gjort så hjälper ja dig.
Du kanske vill ha en textfil med "menyer" i som ska hamna i comboboxen?
/BSv:En liten fråga
<code>
Option Explicit
Private Sub Command1_Click()
'Denna behöver inte du, gjord den bara för att kunna testa
'Test Fyller ComboBoxen med något
Dim i As Long
For i = 0 To Screen.FontCount - 1
Combo1.AddItem Screen.Fonts(i)
Next 'i
End Sub
Private Sub Form_Load()
Dim Fnum As Long, tmpStr As String
Fnum = FreeFile
On Error GoTo NoLoad
Open App.Path & "\MyComboTest.txt" For Input As Fnum
Do Until EOF(Fnum)
Line Input #Fnum, tmpStr
Combo1.AddItem tmpStr
Loop
NoLoad:
Close #Fnum
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim Fnum As Long, i As Long
Fnum = FreeFile
Open App.Path & "\MyComboTest.txt" For Output As Fnum
For i = 0 To Combo1.ListCount - 1
Print #Fnum, Combo1.List(i)
Next 'i
Close #Fnum
End Sub
</code>Sv: En liten fråga
Det är en webläsare jag har gjort som jag skrev om i ett tidigare inlägg. Jag ska då göra en Favoriter funktion, först skulle jag ha den under favoriter i menyn men jag hörde att det var svårt att göra. Så jag bestämde mig för att ta en combobox istället. Har en knapp man trycker på så ska länken sparas i comboboxen och ligga kvar efter att man har stängt av programmet och komma fram igen när man startar programmet.
Har lagt upp programmet på http://www.pellesoft.se/communicate/userprogram/program.aspx?tid=827
Tack på förhand!Sv: En liten fråga
Enligt Microsofts rekommendationer skall man spara data i "Application Data" mappen i användarprofilen. Då fungerar programmet även för dem som inte är administratörer.Sv:En liten fråga
Om programmet funkar från den mapp som den köres , så skall tillhörande textfil ligga där också.
Text filen skall Öppnas med ex. App.Path & "\MyData.txt"
Programmen söker först i samma mapp som .exe ligger i, sedan i Windows och System32.Sv: En liten fråga
Inget hindrar dej från att göra så, men det kommer inte fungera att skriva till filen för användare som kör Win NT/2000/XP/2003 som har standardrättigheter. Det är något som du får acceptera om du vill utveckla program för den målgruppen.
/JohanSv:En liten fråga
Men jag vidhåller att alla delar som tillhör mitt program som jag gjort
txtfiler ev. tredjeparts ocx:er ,egna dll:er mm skall ligga samlade i samma mapp som .exe
Har man rätt till .exe så har man också rätt till deras auxiliary.
Jag samlar allt som behövs i en mapp,
därefter är det inte mitt problem hur adminstratören delar ut rättigheter.Sv: En liten fråga
Detta är på inget sätt en MS-påhitt, alla OS jag har varit i kontakt med med lite säkerhetstänkande (som t.ex. Unix/Linux) använder samma system.
/JohanSv:En liten fråga
Sv:En liten fråga
Lite off topic, men hur får man fram sökvägen dit?
ThomasSv: En liten fråga
Hur sparar man innehållet i en listbox?? Och den ska sparas i temp- Mappen.
Koden jag har försökt med är:
Private Sub Form_Unload(Cancel As Integer)
Dim i As Integer
Open "c:\windows\temp\Favoriter.txt" For Output As #1
For i = 0 To Combofavoriter.ListCount - 100
Print #1, Combofavoriter.List(i)
Next i
Close #1
End Sub
Men det händer inget, och txt- fil är tom..
Undrar nu vad det kan vara för fel?
Tack på förhand!Sv:En liten fråga
Nedanstående är en wrapper jag hittade på PSC för att få sökvägen för
en hel del sk specialfolders. Lägg koden i en modul.
<code>
Option Explicit
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Const MAX_PATH = 260
Private Type SHTEMID
cb As Long
abID As Byte
End Type
Private Type ITEMIDLIST
mkID As SHTEMID
End Type
Public Enum SHFolders
FOLDER_TEMP_INTERNET = &H20
FOLDER_DESKTOP = &H0
FOLDER_INTERNET_EXPLORER = &H1
FOLDER_PROGRAMS = &H2
FOLDER_CONTROL_PANEL = &H3
FOLDER_PRINTERS = &H4
FOLDER_MY_DOCUMENTS = &H5
FOLDER_FAVORITES = &H6
FOLDER_STARTUP = &H7
FOLDER_RECENT = &H8
FOLDER_SEND_TO = &H9
FOLDER_RECYCLE_BIN = &HA
FOLDER_START_MENU = &HB
FOLDER_ALL_USERS_DESKTOP = &H10
FOLDER_MY_COMPUTER = &H11
FOLDER_NETWORK_NEIGHBOURHOOD = &H12
FOLDER_FONTS = &H14
FOLDER_TEMPLATES = &H15
FOLDER_APPLICATION_DATA = &H1A
FOLDER_LOCAL_SETTINGS = &H1C
FOLDER_INTERNET_CACHE = &H20
FOLDER_COOKIES = &H21
FOLDER_HISTORY = &H22
FOLDER_WINDOWS = &H24
FOLDER_SYSTEM = &H25
FOLDER_PROGRAM_FILES = &H26
FOLDER_MY_PICTURES = &H27
FOLDER_PROFILE = &H28
FOLDER_COMMON_APPLICATION_DATA = &H23
FOLDER_COMMON_START_MENU = &H16
FOLDER_COMMON_PROGRAMS = &H17
FOLDER_COMMON_STARTUP = &H18
FOLDER_COMMON_DESKTOP = &H19
FOLDER_COMMON_TEMPLATES = &H2D
FOLDER_COMMON_DOCUMENTS = &H2E
FOLDER_COMMON_ADMIN_TOOLS = &H2F
FOLDER_COMMON_FAVORITES = &H1F
FOLDER_COMMON_PROGRAM_FILES = &H2B
FOLDER_NONLOCAL_STARTUP = &H1D
FOLDER_NONLOCAL_COMMON_STARTUP = &H1E
FOLDER_X86_SYSTEM = &H29
FOLDER_X86_PROGRAM_FILES = &H2A
FOLDER_X86_COMMON_PROGRAM_FILES = &H2C
End Enum
Public Function GetFolderPath(ByVal ID As SHFolders) As String
Dim Doit As Long, idList As ITEMIDLIST, FolderPath As String
Doit& = SHGetSpecialFolderLocation(0&, ID, idList)
If Doit& = 0& Then
FolderPath$ = Space$(MAX_PATH)
Doit& = SHGetPathFromIDList(ByVal idList.mkID.cb, ByVal FolderPath$)
GetFolderPath$ = Left$(FolderPath$, InStr(FolderPath$, Chr$(0&)) - 1&) & "\"
Else
GetFolderPath$ = ""
End If
End Function
</code>Sv:En liten fråga
Tex
Dim MySaveFile as String
MySaveFile = GetFolderPath(FOLDER_APPLICATION_DATA) & "MittProgramNamn\minfil.txt"