Avatar billede hallubaloo Nybegynder
11. marts 2009 - 12:24 Der er 8 kommentarer og
2 løsninger

Opret fil i bestemt mappe

Hej alle Jer kloge hoveder.
Jeg har et problem med at få oprettet en fil i en bestemt mappe. Det er i sig selv ikke noget problem at lave en

  AssignFile(myFile, 'c:\mappe\hej.txt');

men nu har jeg lavet det sådan, at filens navn bliver bestemt af brugeren...

Kode

---
procedure TForm1.regClick(Sender: TObject);
var
  myFile : TextFile;
  UserRegInput : String;
  PassRegInput : String;
begin
  UserRegInput := UserReg.Text;
  PassRegInput := PassReg.Text;
  AssignFile(myFile, UserRegInput);
  Write(myFile, PassRegInput);
  CloseFile(myFile);
  UserReg.Clear;
  PassReg.Clear;
  Close;
end;
---

Koden virker fint, men hvordan får jeg den smidt ind i en bestemt mappe?
Avatar billede speedy Nybegynder
11. marts 2009 - 12:49 #1
Den simple måde er bare at lægge 2 strenge sammen:

AssignFile('C:\minmappe\' + myFile, UserRegInput);
Avatar billede hallubaloo Nybegynder
11. marts 2009 - 17:49 #2
AHA :P
Så stien skal FORAN...
Sad nemlig og rodede med noget ala

AssignFile(myFile, 'c:\minmappe' + UserRegInput);

men det andet giver da også noget mere mening..
Prøver det lige af senere ;)

Tak for hjælpen indtil videre
Avatar billede hallubaloo Nybegynder
11. marts 2009 - 18:21 #3
AssignFile('C:\test\' + myFile, UserRegInput);
^ virker ikke. "Incompatible types: 'String' and 'Text'

How comes?
Avatar billede speedy Nybegynder
11. marts 2009 - 20:07 #4
Ups, jeg så vist også forkert...

Du har ret i at det skal laves sådan:

AssignFile(myFile, 'C:\test\' + UserRegInput);

Det bør virke...
Avatar billede hallubaloo Nybegynder
12. marts 2009 - 00:07 #5
Heller ikke :S
Programmet starter op, men når jeg så indtaster en værdi, og trykker, så kommer 'Invalid Filename'

Har du et andet bud?
Det irritere mig grænseløst at jeg ikke kan få det til at virke :S
Avatar billede hallubaloo Nybegynder
12. marts 2009 - 00:13 #6
DET ER WIERD...

Hvis jeg nu har navnet 'Ole' i min UserRegInput, og skriver:

AssignFile(myFile, 'C:\test' + UserRegInput);

så kommer der en fil med navnet testOle på c:\ drevet. Hvordan POKKER gør den dét? Den gør det ikke rigtig, men heller ikke helt forkert.. Den vælger sin egen mellemvej. hehe. Er forvirret nu ;)
Avatar billede hallubaloo Nybegynder
12. marts 2009 - 00:26 #7
Muahah :P Fandt ud af det ;)

  myFile := TStringList.Create;
  myfile.Add(PassRegInput);
  myFile.SaveToFile('c:\mappe\' + UserRegInput);
  myFile.Free;



Smider du et svar speedy, så kan vi dele pointene..
Avatar billede speedy Nybegynder
12. marts 2009 - 08:12 #8
Ja, det var så en helt anden løsning :)

Men grunden til at den lavede en fil der hedder testOle, det var jo fordi du manglede den sidste backslash efter mappenavnet.

Jeg programmerer ikke Delphi mere, så jeg har ikke haft mulighed for at teste det jeg skrev.

Men det var godt du fandt en anden løsning du kunne bruge.
Avatar billede hallubaloo Nybegynder
12. marts 2009 - 14:57 #9
Ja, det kan jeg da godt se, nu du siger det ;)
Men det nye jeg fik lavet virker udmærket.

Tak for det :D
Avatar billede mtj111 Novice
24. april 2009 - 15:55 #10
Hej,

Du kan evt. bruge funktionen IncludeTrailingBackslash, hvis brugere har adgang til at rette mappenavnet:

Label1.Caption := IncludeTrailingBackslash('c:\test\hej');

Mvh.
Michael
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