Toon posts:

[C] CR LF probleem in binary mode onder linux

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer op een linux machine een file in 'binary' mode te openen om een dos textfile te lezen (CR-LF).
Nu zou het zo moeten zijn dat ik met getc() zowel het karakter CR als LF krijg!
Vreemd genoeg wordt CR LF nog steeds vertaalt naar alleen LF (dit zou logish zijn in text mode maar zou niet mogen gebeuren in binary mode)

FILE * ifile;
int new_char;

ifile=fopen("dosfile.txt","rb");
do
{
new_char=getc(ifile);
if (new_char == 13) then printf("hoera, het werkt");
}while (new_char !=EOF);


Wie kan mij vertellen wat ik fout doe ??

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 11:12

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hallo Rodey, welkom op GoT. Zet je code tussen [rml][ code=c]...[ /code][/rml] tags, dat is wat beter leesbaar :). Lees ook even de verplichte kost wat Programming & Webscripting betreft, namelijk de "quickstart" en het algemene Het FAQ/Beleid topic

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-04 02:19
Stomme opmerking misschien, maar weet je wel zeker dat die CR's echt voorkomen in je bestand? Maak anders eens een klein testbestand en post de hexdump ervan erbij (in Linux kun je die maken met 'hexdump', als je die geïnstalleerd hebt).

edit:
Trouwens, je weet dat 'then' in C niet bestaat, hoop ik? ;)

[ Voor 18% gewijzigd door Soultaker op 17-11-2005 17:59 ]


Verwijderd

Topicstarter
Soultaker,

Oeps type fout... (then) de code die ik heb werkt.
Als ik zoek op new_char=10 dan krijg ik de gevraagde output.

Ik weet ook zeker dat er CR's in de text zitten (inderdaad geverifieerd met een HEX viewer).

Verwijderd

Topicstarter
Soultaker,

Arghh, je hebt gelijk.....geen CR's in de text op mijn Linux machine......
Ik had via ssh de file heen en weer gestuurd, maar blijkbaar vervangt ssh de CR-LF's voor LF's naar linux.
Grappig is dat als je de file terug haalt van Linux dan staan ze er weer netjes in!

Dank je voor het openen van mijn ogen :-)
De oplossing is files via ssh sturen zonder de txt extensie

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-04 02:19
SSH? Bedoel je geen SCP of FTP? (FTP zal in ieder geval text files als zodanig versturen en de newlines dus convereteren.)

Maar goed, het werkt blijkbaar.
Pagina: 1