element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Autodesk EAGLE
  • Products
  • More
Autodesk EAGLE
EAGLE User Support (English) ULP backslash at end of string issue, bug or not?
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Autodesk EAGLE to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 4 replies
  • Subscribers 187 subscribers
  • Views 756 views
  • Users 0 members are here
Related

ULP backslash at end of string issue, bug or not?

autodeskguest
autodeskguest over 10 years ago

This piece of code fails. Is it a bug in strjoin or some general

backslash+chr(0) issue?

 

i=strsplit(lines,t.value,'\n');     //Split a multiline string

for(;i;i--) lines[i-1]+"
";     //Add backslash at the ends

tmpstr=strjoin(lines,'n');     //Merge back with 'n'

 

This should end up with "\n" (two chars) instead of '\n' (linefeed), but

the backslashes simply dissapear.

 

  • Sign in to reply
  • Cancel
Parents
  • autodeskguest
    autodeskguest over 10 years ago

    On 16/04/2016 3:55 a.m., Morten Leikvoll wrote:

    This piece of code fails. Is it a bug in strjoin or some general

    backslash+chr(0) issue?

     

    i=strsplit(lines,t.value,'\n');    //Split a multiline string

    for(;i;i--) lines[i-1]+"
    ";    //Add backslash at the ends

    tmpstr=strjoin(lines,'n');    //Merge back with 'n'

     

    This should end up with "\n" (two chars) instead of '\n' (linefeed), but

    the backslashes simply dissapear.

     

    Hi Morten

     

    Not enough backslashes.

     

    Working backwards

    You need an escaped backslash in 'lines[]' so that is 2.

    To get those 2 you need to escape them, so that's 4

     

    The following works

     

     

     

    int i;

    string lines[];

    string tmpstr, value = "123 345 678 999";

    i=strsplit(lines,value,' ');    //Split a multiline string

    for(i;i>0;i--) { lines[i-1]+= "

    ";    //Add backslash at the end

    dlgMessageBox(lines[i-1]);

    }

    tmpstr=strjoin(lines,'n');    //Merge back with 'n'

    dlgMessageBox(tmpstr);

     

     

     

    Regards

    Warren

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 10 years ago in reply to autodeskguest

    On 16/04/2016 5:59 p.m., warrenbrayshaw wrote:

    On 16/04/2016 3:55 a.m., Morten Leikvoll wrote:

    This piece of code fails. Is it a bug in strjoin or some general

    backslash+chr(0) issue?

     

    i=strsplit(lines,t.value,'\n');    //Split a multiline string

    for(;i;i--) lines[i-1]+"
    ";    //Add backslash at the ends

    tmpstr=strjoin(lines,'n');    //Merge back with 'n'

     

    This should end up with "\n" (two chars) instead of '\n' (linefeed), but

    the backslashes simply dissapear.

     

    Hi Morten

     

    Not enough backslashes.

     

    Working backwards

    You need an escaped backslash in 'lines[]' so that is 2.

    To get those 2 you need to escape them, so that's 4

     

    The following works

     

     

     

    int i;

    string lines[];

    string tmpstr, value = "123 345 678 999";

    i=strsplit(lines,value,' ');    //Split a multiline string

    for(i;i>0;i--) { lines[i-1]+= "

    ";    //Add backslash at the end

    dlgMessageBox(lines[i-1]);

    }

    tmpstr=strjoin(lines,'n');    //Merge back with 'n'

    dlgMessageBox(tmpstr);

     

     

     

    Regards

    Warren

     

     

     

     

    The issue with my previous example is that it used four backslashes to

    provided for the final dlgMessageBox.

     

    If one uses a dlgTextView to display the result,it presents the text

    verbatim, as we know, so you can revert to two backslashes thus;

     

      int i;

    string lines[];

    string tmpstr, value = "123 345 678 999";

    i=strsplit(lines,value,' '); //Split a multiline string

    for(i;i>0;i--) { lines[i-1]+= "
    "; //Add backslash at the end

    //dlgMessageBox(lines[i-1]);

    }

    tmpstr=strjoin(lines,'n'); //Merge back with 'n'

    tmpstr +='n';

    //dlgMessageBox(tmpstr);

    dlgDialog(""){

    dlgTextView(tmpstr);

    };

     

     

    While not the exercise quoted, you could reconstruct using

    tmpstr=strjoin(lines,'\n');

    thus

     

      int i;

    string lines[];

    string tmpstr, value = "123\n345\n678\n999\n";

    i=strsplit(lines,value,'\n'); //Split a multiline string

    tmpstr=strjoin(lines,'\n'); //Merge back with 'n'

    //dlgMessageBox(tmpstr);

    dlgDialog(""){

    dlgTextView(tmpstr);

    };

     

    note that both dlgMessageBox and dlgTextView display this differently so

    they are similar but not equivalent.

     

    HTH

    Warren

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • autodeskguest
    autodeskguest over 10 years ago in reply to autodeskguest

    On 16/04/2016 5:59 p.m., warrenbrayshaw wrote:

    On 16/04/2016 3:55 a.m., Morten Leikvoll wrote:

    This piece of code fails. Is it a bug in strjoin or some general

    backslash+chr(0) issue?

     

    i=strsplit(lines,t.value,'\n');    //Split a multiline string

    for(;i;i--) lines[i-1]+"
    ";    //Add backslash at the ends

    tmpstr=strjoin(lines,'n');    //Merge back with 'n'

     

    This should end up with "\n" (two chars) instead of '\n' (linefeed), but

    the backslashes simply dissapear.

     

    Hi Morten

     

    Not enough backslashes.

     

    Working backwards

    You need an escaped backslash in 'lines[]' so that is 2.

    To get those 2 you need to escape them, so that's 4

     

    The following works

     

     

     

    int i;

    string lines[];

    string tmpstr, value = "123 345 678 999";

    i=strsplit(lines,value,' ');    //Split a multiline string

    for(i;i>0;i--) { lines[i-1]+= "

    ";    //Add backslash at the end

    dlgMessageBox(lines[i-1]);

    }

    tmpstr=strjoin(lines,'n');    //Merge back with 'n'

    dlgMessageBox(tmpstr);

     

     

     

    Regards

    Warren

     

     

     

     

    The issue with my previous example is that it used four backslashes to

    provided for the final dlgMessageBox.

     

    If one uses a dlgTextView to display the result,it presents the text

    verbatim, as we know, so you can revert to two backslashes thus;

     

      int i;

    string lines[];

    string tmpstr, value = "123 345 678 999";

    i=strsplit(lines,value,' '); //Split a multiline string

    for(i;i>0;i--) { lines[i-1]+= "
    "; //Add backslash at the end

    //dlgMessageBox(lines[i-1]);

    }

    tmpstr=strjoin(lines,'n'); //Merge back with 'n'

    tmpstr +='n';

    //dlgMessageBox(tmpstr);

    dlgDialog(""){

    dlgTextView(tmpstr);

    };

     

     

    While not the exercise quoted, you could reconstruct using

    tmpstr=strjoin(lines,'\n');

    thus

     

      int i;

    string lines[];

    string tmpstr, value = "123\n345\n678\n999\n";

    i=strsplit(lines,value,'\n'); //Split a multiline string

    tmpstr=strjoin(lines,'\n'); //Merge back with 'n'

    //dlgMessageBox(tmpstr);

    dlgDialog(""){

    dlgTextView(tmpstr);

    };

     

    note that both dlgMessageBox and dlgTextView display this differently so

    they are similar but not equivalent.

     

    HTH

    Warren

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube