Hallo allemaal,
Sorry, kan niks hierover vinden in het forum. Dus vandaar deze post.
Middels een php script schrijf ik gegevens naar een plain text file. Stukje uit de code (bepaalde zaken zoals foutcontrole en openen file is weggelaten):
In het bestand komt dan o.a. te staan:
Het bestand wordt daarna gekopieerd naar een andere folder. Een programma geschreven in Perl moet daarna dit bestand uitlezen.
Een stukje uit de code daarvan:
Het lezen van de file is mogelijk en daar ontstaat ook geen fout op.
Het probleem is echter, dat alle data die rechts van een = teken staat het teken ^M op het einde heeft.
Dus:
- action wordt goed gelezen
- id wordt goed gelezen
- 00001 wordt gelezen als 00001^M
- adminname wordt goed gelezen
- Name wordt gelezen als Name^M
Nu snap ik niet waar dit door komt. Ik kan nergens een fout vinden.
Als iemand weet wat ik fout doe, dan graag.
Heb al geprobeerd met een "string replace" dit probleem op te lossen, maar dit lukt me niet.
Alvast bedankt.
Greetz,
Geer
Sorry, kan niks hierover vinden in het forum. Dus vandaar deze post.
Middels een php script schrijf ik gegevens naar een plain text file. Stukje uit de code (bepaalde zaken zoals foutcontrole en openen file is weggelaten):
code:
1
2
3
4
| $writetofile = "[".$command."]\r\n"; $writetofile .= "id=".$id."\r\n"; $writetofile .= "adminname=".$adminname."\r\n"; fwrite($fp,$writetofile); |
In het bestand komt dan o.a. te staan:
code:
1
2
3
| [action] id=00001 adminname=Name |
Het bestand wordt daarna gekopieerd naar een andere folder. Een programma geschreven in Perl moet daarna dit bestand uitlezen.
Een stukje uit de code daarvan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| if(open($Inf, "commands.cfg"))
{
while(<$Inf>)
{
chomp;
#Strip comments
s/^([^\#]*)\#.*$/$1/;
#Ignore blank lines
if(/\S/)
{
if(/^\s*\\[([^\]]+)\]\s*$/)
{
#It's a [] category
...
}
elsif(/^\s*([^\s\=]+)\s*\=\s*(.*)\s*$/)
{
#It's an assignment
...
}
}
}
close($Inf);
} |
Het lezen van de file is mogelijk en daar ontstaat ook geen fout op.
Het probleem is echter, dat alle data die rechts van een = teken staat het teken ^M op het einde heeft.
Dus:
- action wordt goed gelezen
- id wordt goed gelezen
- 00001 wordt gelezen als 00001^M
- adminname wordt goed gelezen
- Name wordt gelezen als Name^M
Nu snap ik niet waar dit door komt. Ik kan nergens een fout vinden.
Als iemand weet wat ik fout doe, dan graag.
Heb al geprobeerd met een "string replace" dit probleem op te lossen, maar dit lukt me niet.
Alvast bedankt.
Greetz,
Geer