Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Einfache Sache... Nur der Filepostionierer funzt nicht

Andy 386 / 4 Antworten / Baumansicht Nickles

Ich möchte ein Programm, dass mir alle Kleinbuchstaben einer Textdatei zu Grossbuchstaben macht.
Hab nix bei google gefunden, mich also selbst rangesetzt. Soweit klappt alles ganz gut, nur schreibt mir mein proggi die Geänderten Buchstaben nicht wieder auf die alte Stelle sondern an das Ende der Textdatei. Wieso mein fseek beim zweiten nutzen nicht funktioniert, ist mir völlig unklar.

Hier di Source:
#include

bei Antwort benachrichtigen
Andy 386 Nachtrag zu: „Einfache Sache... Nur der Filepostionierer funzt nicht“
Optionen

Da hat mich irgendein scripting reingelegt...
cout do (geschweift auf)
fseek(text,z*sizeof(a),SEEK_SET);
fread(&a,sizeof(a),1,text);
if (a>97 && a (geschweift auf)a=a-32;
cout fseek(text,z*sizeof(a),SEEK_SET);
fwrite(&a,sizeof(a),1,text);
(geschweift zu)
z++;
(geschweift zu)while(z

bei Antwort benachrichtigen
mr.escape Andy 386 „Da hat mich irgendein scripting reingelegt... cout do geschweift auf fseek...“
Optionen
Da hat mich irgendein scripting reingelegt...
Nicht ganz, sondern einfaches HTML. Dort werden nämlich steuerbefehle in spitze klammern gepackt, d.h. die kleiner/größer zeichen.
Damit du nicht nochmal hereingelegt wirst, musst du alle "<" durch "&lt;" ersetzen, sowie alle führenden leerzeichen durch "&nbsp;".
Damit es noch besser aussieht, das ganze in ein "<tt>...</tt>" packen.

mr.escape

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

FILE *text;

int main()
{
  char a;
  long z;
  long siz;

  z=0;
  text=fopen("text.txt","a+");
  fseek(text,0,SEEK_END);
  siz=ftell(text)/sizeof(a);
  cout<<siz;

  do{
    fseek(text,z*sizeof(a),SEEK_SET);
    fread(&a,sizeof(a),1,text);
    if (a>97 && a<123)
    {a=a-32;
      cout<<a;
      fseek(text,z*sizeof(a),SEEK_SET);
      fwrite(&a,sizeof(a),1,text);
    }
    z++;

  }while(z<siz);

  fclose(text);
  system("PAUSE");
  return 0;
}
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
Borlander Andy 386 „Einfache Sache... Nur der Filepostionierer funzt nicht“
Optionen
Soweit klappt alles ganz gut, nur schreibt mir mein proggi die Geänderten Buchstaben nicht wieder auf die alte Stelle sondern an das Ende der Textdatei.Dürfte damit zusammenhängen, daß Du die Datei im Modus append (anhängen) geöffnet hast fopen("text.txt","a+"); Für das was Du vorhast müsste die Datei so geöffnet werden, daß ein wahlfreier Zugriff möglich ist (schreiben an beliebige Position)...

Gruß
Borlander
bei Antwort benachrichtigen
Andy 386 Borlander „Dürfte damit zusammenhängen, daß Du die Datei im Modus append anhängen...“
Optionen

Ja ! sowas dummes...
r+ wär der richtige modus gewesen
Danke, Borlander !

bei Antwort benachrichtigen