Avatar billede mikker Nybegynder
07. oktober 2002 - 18:59 Der er 16 kommentarer og
1 løsning

mishandling af fil

Hej eksperter.

Jeg vil gerne læse første linie i en txt-fil, slette den linie og derefter appende en ny linie.
UDEN at åbne/lukke hele tiden.

Alle linier vil have en længde af 60 tegn

- Mikker
Avatar billede erikjacobsen Ekspert
07. oktober 2002 - 19:02 #1
Du kan ikke slette den første linie i en fil uden at kopiere
hele indholdet over på en anden fil. Du bør bruge en eller
anden form for database.
Avatar billede tubber Juniormester
07. oktober 2002 - 19:08 #2
Man kan måske tage hele indholdet ind i et array og så behandle det der og så slette indholdet i filen og smide hele arrayet tilbage ?

Dim FilNummer as Integer
  Dim MinStreng() as String
  Dim Tæller as integer
  Filnummer = FreeFile
  Open "C:\Fil.txt" For Input As #Filnummer
  Do While Not EOF(Filnummer)
    Line Input #Filnummer, MinString(Tæller)
    Tæller = Tæller+1
  Loop
  Close #Filnummer

/Tubber
Avatar billede mikker Nybegynder
07. oktober 2002 - 19:13 #3
I øjeblikket arbejder jeg med 2 listboxe, men problemet er, at når vi når til en 5000 - 10000 linier i hver listbox så står mit tower i flammer!

Jeg skal måske lige sige, at det ikke kun er 1 linie, men måske en 5 til 50 nye linier for hver jeg sletter indtil vi når et ikke nærmere defineret punkt, hvor udviklingen så vil vende (tror jeg).
I skal ikke tage det så tungt, hvis I ikke er med på hvad fanden det skal bruges til, jeg har endnu ikke kunnet forklare det for nogen :o)

- Mikker
Avatar billede tubber Juniormester
07. oktober 2002 - 19:17 #4
vil da gerne høre om det mikker :))

Er altid interesseret i noget der får et tower til at stå i flammer......
Avatar billede erikjacobsen Ekspert
07. oktober 2002 - 19:20 #5
...og en database er udelukket...?
Avatar billede mikker Nybegynder
07. oktober 2002 - 19:25 #6
tubber>>
Jeg fik en mail med at jeg kunne tjene millioner af dollars på en eller anden form for kædebrev. YEAH right tænker man...
Jeg manglede noget at tage mig til en dag så jeg begyndte lege med tanken om at starte noget op i lille danmark, men desværre er lovgivningen i DK lidt til en side...
Anyway mit program bygger på min idé og er en form for testprogram. Jeg vil gerne se om det kan svare sig at slås for det, for det bliver ikke nemt at overbevise diverse instanser om at det rent faktisk er lovligt.
Indtil videre er jeg stødt på mange forhindringer, såsom at overføre penge til privates bankkonto direkte osv. osv...
Jeg håber du forstår at jeg ikke offentliggør yderligere detaljer :o)
Ikke fordi jeg tror det bliver til noget, men fordi jeg gerne vil holde det for mig selv.

- Mikker
Avatar billede mikker Nybegynder
07. oktober 2002 - 19:27 #7
erikjacobsen>> Tro mig jeg er igang med at overveje dit indlæg, du er ikke glemt.
Umiddelbart tror jeg det bliver løsningen, men jeg ville bare gerne undgå det, da jeg i forvejen laver 1 til 5 ændringer i en dbase for hver ´linie´

- Mikker
Avatar billede erikjacobsen Ekspert
07. oktober 2002 - 19:29 #8
Du har vist mere brug for en advokat end en programmør. Og det var ikke
var ikke ment som en morsomhed.
Avatar billede mikker Nybegynder
07. oktober 2002 - 19:32 #9
Netop derfor vil jeg gerne vide om det kan lade sig gøre.
Om det kan løbe rundt osv.
Anyway, da jeg mener det er for stort til et array må dit bud være det bedste erik.
Kaster du et svar efter mig?

- Mikker
Avatar billede erikjacobsen Ekspert
07. oktober 2002 - 19:35 #10
Det er ikke et spørgsmål om det kan lade sig gøre. Det er
et spørgsmål om du vil risikere bøder, erstatningskrav og
fængsel. Hvis du tror der er penge i det kan du vel godt
bruge nogle tusind kroner på at spørge en advokat til råds.
Mit gæt er at der er nogle penge der er givet pokkers godt
ud.

Den danske lovligning er lykkeligvis yderst restriktiv hvad
angår noget der bare lugter af kædebreve.

Point tak - ingen point for at hjælpe andre ud i kriminalitet.
Avatar billede mikker Nybegynder
07. oktober 2002 - 20:37 #11
Jeg er ked af at du tager det på den måde.
Jeg er jo ikke idiot. Trods alt.
Men ved at tage grundprincippet i 'kædebreve' (Mest det med at det berører MANGE mennesker) og lægge en del til og trække meget fra, vende det på hovedet og på vrangen og tilsætte forskellige ting kan man få en idé ud af det. Jeg er ikke interesseret i at narre penge fra folk, tværtimod. Med ting som reklamer osv. inde over, kunne man vel forestille sig at folk kunne tjene en klat skilling.
'Den der siger det ikke kan lade sig gøre, bliver overdøvet af den der lige har gjort det.'
Du behøver ikke være nervøs for at jeg er på vej ud i kriminalitet, det er der ingen fare for.
Med hensyn til pointene vender vi vel tilbage til det opgaven lød på, hvad jeg så gør med dit svar er vel ikke dit problem.
Endnu engang må jeg beklage, at du har taget det osm du har og jeg mener stadig du bør have de point der retmæssigt tilkommer dig.

Med ønsket om en fortsat god dag.
- Mikker
Avatar billede erikjacobsen Ekspert
07. oktober 2002 - 20:48 #12
Jeg er sikker på du også får en god dag og et godt liv hvis du
snakker med en advokat om din idé. Du er simpelthen for platdum hvis
du ikke gør.

Det er ikke mig der "tager det" på en bestemt måde. Jeg advarer dig
af et oprigtigt ønske om at du ikke skal komme til at lave noget du
fortryder. Tro mig, kædebreve plus lidt minus lidt andet er med stor
sandsynlighed stadig kædebreve i dansk lovgivning. Og det vil være synd
hvis en domstol skal fortælle dig det.

Specielt med elektroniske kædebreve er det supernemt at melde dem
til politiet, så det vel ske. Med garanti!

Men jeg tror du har forstået hvad jeg mener, og så er det jo op til dig.
Avatar billede tubber Juniormester
07. oktober 2002 - 20:49 #13
ericjackobsen:
Hvorfor bruge penge på en advokat før han ved om det virker ?

mikker:
Lydder spændende - håber du finder din vej ud af det :O)
og lige en tanke.....
Hvad med at bruge en inifil ?
Der kan du jo stille det op med punkter og underpunkter.......

i en basfil:
'Declaretion for writing to an .ini file

Public Declare Function WritePrivateProfileString _
Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationname As String, ByVal _
lpKeyName As Any, ByVal lsString As Any, _
ByVal lplFilename As String) As Long

'Declaretion for read from an .ini file

Public Declare Function GetPrivateProfileString Lib _
"kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationname As String, ByVal _
lpKeyName As String, ByVal lpDefault As _
String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As _
String) As Long

'variables for reading and writing .ini files
'They are dimensioned here becaus then the module
'can be freely moved to other programs

Global lngResult As Long
Global strFileName
Global strResult As String * 50

eksempel på at læse fra en ini:
strFileName = App.Path & "\setup.ini"
lngResult = GetPrivateProfileString("Options", _
"Active Frame", strFileName, strResult, Len(strResult), _
strFileName)

eks. på at skrive til en ini:
'Change Option for alwayes on top

If menuOnTop.Checked = False Then
    menuOnTop.Checked = True
    strFileName = App.Path & "\Setup.ini"
    lngResult = WritePrivateProfileString("Options", _
    "OnTop", "2", strFileName)

    'If value = 0 reports an error

    If lngResult = 0 Then
    Call MsgBox("An error has occurred", _
    vbExclamation)
    End If
    SetWindowPos hwnd, conHwndTopmost, varX1, varY1, varX2, varY2, _
        conSwpNoActivate Or conSwpShowWindow

'Change Option for alwayes on top

ElseIf menuOnTop.Checked = True Then
    menuOnTop.Checked = False
   
    'Writes new setting to .ini file
   
    strFileName = App.Path & "\Setup.ini"
    lngResult = WritePrivateProfileString("Options", _
    "OnTop", "1", strFileName)

    'If value = 0 reports an error

    If lngResult = 0 Then
    Call MsgBox("An error has occurred", _
    vbExclamation)
    End If
   
    'Sets new window options for alwayes on top
   
    SetWindowPos hwnd, conHwndNoTopmost, varX1, varY1, varX2, varY2, _
        conSwpNoActivate Or conSwpShowWindow
End If
End Sub
Avatar billede mikker Nybegynder
08. oktober 2002 - 18:37 #14
Erik>> Jeg ønsker absolut ikke at lave noget ulovligt og jeg takker oprigtigt for din omsorg. Det er jo også bare noget pjat jeg lusker lidt med i min sparsomme fritid.
Da jeg altid har respekteret din viden, håber jeg at du i fremtiden stadig vil hjælpe mig i forbindelse med programmerings probs. :O)

Tubber>> Ser spændende ud, lidt besværligt i forhold til hvad jeg havde tænkt mig, men spændende. Smid et svar så får du sgu point :O)

Til alle: Jeg er oprigtigt ked af denne misære, jeg havde faktisk bare et spørgsmål omkring at skrive til/ slette fra en fil og kunne ikke selv hitte ud af det. Hvilket vel ikke er så sært, da det som Erik påpegede, ikke kan lade sig gøre.

Med ydmyg hilsen
- Mikker
Avatar billede tubber Juniormester
08. oktober 2002 - 23:33 #15
Prøver lige at lave en mere overskuelig ting :O)
Avatar billede tubber Juniormester
08. oktober 2002 - 23:42 #16
'Følgende ligges i et modul (basfil)
'Declaretion for writing to an .ini file

Public Declare Function WritePrivateProfileString _
Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationname As String, ByVal _
lpKeyName As Any, ByVal lsString As Any, _
ByVal lplFilename As String) As Long

'Declaretion for read from an .ini file

Public Declare Function GetPrivateProfileString Lib _
"kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationname As String, ByVal _
lpKeyName As String, ByVal lpDefault As _
String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As _
String) As Long

'variables for reading and writing .ini files
'They are dimensioned here becaus then the module
'can be freely moved to other programs

Global lngResult As Long
Global strFileName
Global strResult As String * 50

-------------------------------------------------------------------------

'Read option setup from .ini file

strFileName = App.Path & "\setup.ini"
lngResult = GetPrivateProfileString("Gruppe", _
"Type", strFileName, strResult, Len(strResult), _
strFileName)

'If value = 0 reports an error

If lngResult = 0 Then
Call MsgBox("An error has occurred", _
vbExclamation)
Else
    If Trim(strResult) = 1 Then
        MsgBox ("Her skal handlingen for værdi 1 stå")
    ElseIf Trim(strResult) = 2 Then
        MsgBox ("Her skal handlingen for værdi 2 stå")
    End If
End If

---------------------------------------------------------------------------

'Write option to an ini file
    strFileName = App.Path & "\Setup.ini"
    lngResult = WritePrivateProfileString("Gruppe", _
    "Type", "Værdi", strFileName)

---------------------------------------------------------------------------

det vil se sådan her ud i ini filen:

[Gruppe]
Type=Værdi

under hver gruppe kan der være flere typer, så det er bare lave en ny write hvor du skriver noget andet en type, kan f.eks. være type2....

/Tubber

PS. Du skrev noget i spg: http://exp.dk/spm/267059
Hvad mener du med det ?
Avatar billede mikker Nybegynder
09. oktober 2002 - 16:39 #17
Har svaret dig på  http://www.eksperten.dk/spm/267059

Men tak for hjælpen :O)

- Mikker
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