AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu WriteLn

Ein Thema von Pseudemys Nelsoni · begonnen am 25. Jun 2004 · letzter Beitrag vom 25. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Frage zu WriteLn

  Alt 25. Jun 2004, 16:06
hi (mal wieder) :\

ich habe folgendermassen versucht WriteLn zu benutzen:

Delphi-Quellcode:
 while not EOF(hFile) do
begin
  ReadLN(hFile, txt);
  if txt = 'hithen
    exit;
end;
WriteLN(hFile, 'hi');


ich bekomme "Runtime Error 105" was für: "Das bisherige Besitzrecht dieser Semaphore ist beendet" steht.

Was heisst das?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:10
Wie hast du die Datei geöffnet? Bedenke: Mit Reset hast du nur Lesezugriff!
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:12
oh, dachte lese und schreibe zugriff, hmmm.

Wenn ich aber rewrite benutze wird die alte datei gelöscht und neu angelegt oder?

das möchte ich aber nicht =(...was benutz ich denn da?

Ich möchte aus ihr lesen können und auch schreiben
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:13
Append wäre eine Möglichkeit.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:14
kannst öffnen mit was Du willst *g*

reset kannste lesen

rewrite löscht das ganze und nur schreibzugriff

append löscht nicht hängt an aber auch nur schreibzugriff
Günter
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:15
hallo luckie,

danke ^^

da der dateizeiger bei append ja ans ende gesetzt wird wollte ich noch fragen mit welcher funktion ich die position ändere? Seek() kann ich nicht nehmen :\

EDIT: wenn ich reset() durch Append() ersetze bekomme ich den runtime error "104" (Zur Zeit einer Unterbrechung (Interrupt) kann keine exklusive Semaphore angefordert werden. )

wieso denn nun schon wieder

nun gehts, hab innerhalb der geöffneten datei Reset UND append benutzt (ist das schlimm?)

BTW: irgendwie funktioniert WriteLN nicht richtig...eigentlich sollte damit ja eine NEUE zeile eingefpgt werden... es wird aber einfach an das ende der letzten zeile angehängt, wieso das?

Code ist bis jetzt so:

Delphi-Quellcode:
  AssignFile(hFile, string(buf));
  Reset(hFile);
  while not EOF(hFile) do
  begin
    ReadLN(hFile, txt);
    if txt = 'hithen
      exit;
  end;
  Append(hFile);
  WriteLN(hFile, 'hi');
  CloseFile(hFile);

fehler drin?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:49
Entscheid dich für eines. Also nur Append oder Reset.
Und zum Zurücksetzen des Dateizeigers nutzt du Seek.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:50
Seek dürfte in Textdateien nicht gehen. Die kann man nur zeilenweise einlesen und zeilenweise schreiben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#9

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:55
hallo chewie,

also es scheint aber mit beidem zu gehen (also reset und append) wenn ich erst closefile nach reset() nehme und dann mit append() weiter mache funktionierts genauso.

Das problem ist jetzt eigentlich das ich meinen text nicht in eine NEUE zeile bekomme, weisst du wie ich das anstellen könnte?

sagen wir mal so sieht meine textdatei aus:

1
2
3
4
5


mein code soll folgendes(mit dem beispiel"6") tun:


- prüfen ob "6" bereits irgendwo ist
- wenn nicht dann die "6" in eine neue Zeile packen

aber irgendwie sieht nach dem schreiben meine datei dann so aus:

1
2
3
4
56


ich könnte ja vielleicht "#13#10" verwenden...aber dann wäre das eventuell auch falsch weil es ja auch sein KANN das bereits nach der 5 eine neue zeile war... wie kann ich das prüfen ob eine leere zeile bereits drin ist und wenn nicht ggf. erstellen?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Frage zu WriteLn

  Alt 25. Jun 2004, 16:59
Hi
Warum lädst du die Datei (wenn es wirklich nur eine Textdatei ist) nicht in eine Stringlist und speicherst sie anschließend wieder?

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz