in reply to Forcing a string with no spaces to wrap to fit on the screen

HTML 4.0 includes the ­ entity which permits an optional line break. Of course, this requires that the browser implement standard HTML. Good luck. Here's a sample paragraph using that (see the source), and if it works in your browser, life is good!

sdfsdfasdfaskjhasdkhdglkjhsdgkljhd­gfkjhdasfjhkljsdahgklsjgkajshgfkaljdghdalkhj­sdfsdfasdfaskjhasdkhdglkjhsdgkljhd­gfkjhdasfjhkljsdahgklsjgkajshgfkaljdghdalkhj­sdfsdfasdfaskjhasdkhdglkjhsdgkljhd­gfkjhdasfjhkljsdahgklsjgkajshgfkaljdghdalkhj

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.

Edit by tye, put long line in READMORE

  • Comment on •Re: Forcing a string with no spaces to wrap to fit on the screen
  • Download Code

Replies are listed 'Best First'.
Re: •Re: Forcing a string with no spaces to wrap to fit on the screen
by Anonymous Monk on Jun 09, 2004 at 16:49 UTC

    Thanks for the suggestions, i've tried each and with varying success. I like the ­. The main problem with that is that i'm using Mason, and Mason has a handy |h thing which strips out HTML and things like &anything before displaying the string to the screen, so I can't really make any substitutions and add HTML code in... even escaped HTML code. So i'm a little bit stuck. I can of course just not use the Mason |h flag, but ideally I would like to just put everything in a table cell and FORCE that cell not to be more than x pixels wide. However if there are no line breaks or spaces in the string I don't think there is a HTML construct that will allow me to do this.

    I hope I am making sense here.

    I suppose i'm looking for a HTML solution to wrap around the string to force it to fit into the space I want, rather than actually changing the string itself.

    Is this possible?

    Thanks,

    Tom

      Tom, maybe I'm missing something important, but HTML table cells will wrap automatically. Setting width=50% for a cell should force wrapping to a maximum of half the current total column span.

      I just tried it and I see the problem about spaces. Hmm. Afaik, somehow spaces are gonna have to go in there somehow. ..
      #!/usr/bin/perl my $bigstring = 'qawsedrftgyhujikolplokijuhygtfrdeswaqawsedrftgyhujiko +lp'; my $width = 10; print padit($bigstring,$width,"\n"); sub padit { my $padme = shift; my $width = shift; my $separator = shift; my $position = 0; my $padded; while ($position < length $padme) { $padded .= substr $padme, $position, 1; $position++; if ($position % $width == 0) { $padded .= $separator; } } return $padded; }
      best of luck
      Andy