On 01/02/12 18:34, Garry Trethewey wrote:
<stuff deleted>

this code:-

LF_CR = chr(13) + chr(10)
oldStrWin = '</trkseg>' + LF_CR + '<trkseg>'
newStrWin = '</trkseg>' + LF_CR + '</trk>' + LF_CR *2 + '<trk>' + LF_CR
+ '<trkseg>'
outStr = inStr.replace(oldStrWin, newStrWin)

- works as I'd expect in linux, but in Win Vista or Win 7 it doesn't.

So result in win vista & 7 :-
</trkseg>
<trkseg>

Results in linux :-
</trkseg>
</trk>

<trk>
<trkseg>

<stuff deleted>




Thanks both for that.
New code works :-

if osName == 'posix':
  NL = chr(13) + chr(10)
if osName == 'nt':
  NL = '\n'           # or chr(10)

# d'oh!
# Had lots of trouble with win CR_LF **not** being CR_LF
# see emails
# Tim Wegener linux/20120201-2155
# Daryl Tester linux/20120201_2050
# for more options

oldStrWin = '</trkseg>' + NL + '<trkseg>'
newStrWin = '</trkseg>' + NL + '</trk>' + NL *2 + '<trk>' + NL + '<trkseg>'
outStr = inStr.replace(oldStrWin, newStrWin)

"It" (is that win or python?) converts chr(13) + chr(10) to chr(10) ie \n as it reads, then converts back to chr(13) + chr(10) as it writes. So without "print repr(inStr)" I'd never have seen the prob.

Yep, file opened in text mode. inFile = open(inFileName, "r")
The discussion of all the opening modes is something I never thought I'd have a use for, only ever using txt files. But now I'm moving into windows, I'll keep it for probs I never had before.

Thanks again
------------------------------------
Garry Trethewey
------------------------------------


_______________________________________________
sapug mailing list
[email protected]
http://mail.python.org/mailman/listinfo/sapug

Reply via email to