Avatar billede aceofspair Nybegynder
08. april 2002 - 15:36 Der er 6 kommentarer og
1 løsning

Parse og edit

Jeg har en anmodning til alle jer turboprogrammører...

Jeg har en FTP der kører alle brugere fra en .INI-fil

Nu ligger landet sådan at jeg gerne vil have at man (brugerene) kan skifte deres password online, og derfor har jeg brug for en lille funktion til at parse en .ini-fil

Syntaxen i filen er:

---Syntax
[username]
Login=username
Pass=password
EnableGroup=1
GroupName=std
Home-Ip=-= All IP Homes =-
RelativePath=1
TimeOut=600
MaxConPerIp=1
MaxUsers=0
RatioMethod=0
RatioUp=1
RatioDown=1
RatioCredit=0
MaxSpeedRcv=512
MaxSpeedSnd=512
QuotaCurrent=0
QuotaMax=0
DefaultGroupRatioCredit=-1
DefaultGroupQuotaCredit=-1
Stat_Login=0
Stat_LastLogin=30-12-99
Stat_LastIP=Unknown
Stat_KBUp=0
Stat_KBDown=0
Stat_FilesUp=0
Stat_FilesDown=0
Stat_FailedUp=0
Stat_FailedDown=0
---Syntax

Nu skal det så virke sådan at systemet går ind og finder brugeren efter det navn der står mellem de do []-er og derefter lader folk skifte adgangskoden

Der er den tvivl mang der kan se fordelen i dette system, da min FTP-server er BulletProof, og det er en af de mest brugte servere på WINTEL-platformen

Håber på hurtigt svar
Avatar billede medjeti Nybegynder
08. april 2002 - 16:47 #1
Har du en database med folks brugernavn/pass i?
Så kunne du vel teoretisk set sige:
strNyFil = Replace(strGammelFil, "Login=" & strUsername & vbCrLf & "Pass=" & strPass)
... og så skrive strNyFil i ini-filen.
Avatar billede medjeti Nybegynder
08. april 2002 - 16:50 #2
Doh... jeg mente:

strNyFil = Replace(strGammelFil, "Login=" & strUsername & vbCrLf & "Pass=" & strPass, "Login=" & strUsername & vbCrLf & "Pass=" & strNytPass)
Avatar billede aceofspair Nybegynder
08. april 2002 - 22:47 #3
Jeg kan følge ideen, men så kan to brugere ikke have samme adgangskode...

Og så ryger lidt af ideen, men ellers en Fed løsning
Avatar billede medjeti Nybegynder
08. april 2002 - 23:03 #4
Idéen var egentlig at replace begge linier, altså Login og Pass i ét hug:
Altså, replace ["Login=" & strUsername & vbCrLf & "Pass=" & strPass]
med ["Login=" & strUsername & vbCrLf & "Pass=" & strNytPass] - Jeg er dog ikke 100 på at den holder med linieskiftene, men det er da forsøget værd.

Et alternativ kunne være at iterere igennem alle linierne med TextStreamObjektet, á la
Do Until Fil.EOF
strLinie = Fil.ReadLine
If strLinie = "Login=" & strUsername Then
  strNyFil = strNyFil & strLinie & vbCrLf
  Fil.SkipLine
  strLinie = "Pass=" & strNytPass
End If
strNyFil = strNyFil & strLinie & vbCrLf
Loop
... så skulle strNyFil være en opdateret udgave af din INI-fil.
OBS: Det er helt utestet pseudokode jeg bare hoster op her, så der skal nok være noget galt, men jeg tror princippet kan virke.

Håber du får det til at virke, det lyder som en god idé.
Avatar billede aceofspair Nybegynder
07. maj 2002 - 14:50 #5
Jeg er så heldig at jeg endnu ikke har fået tid til at prøve det efter, men da pseudokoden ser (i mine øjne) ud til at virke vil jeg ive dig pointene

AOS
Avatar billede medjeti Nybegynder
07. maj 2002 - 15:25 #6
Cool, håber du får det til at virke.

Hvis det er helt galt må du lige sige til... :)
Avatar billede aceofspair Nybegynder
03. april 2003 - 09:23 #7
nu har jeg så (næsten et år efter at jeg har lavet posten) fået testet det...
og det er ikke koden det er galt med...

det er at jeg skal genstarte min server før det giver nogen ændring...

men serveren virker ellers godt, så jeg NÆGTER at skifte den ud...

stædig mig hva?
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

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