title: parse text with Matlab
body: <p>I have a text file (output from an old program) that I'd like to clean. Here's an example of the file contents.</p>
  
  <pre><code>*|V|0|0|0|t|0|1|1|4|11|T4|H01|||||||||||||||||||||| 
  
  
  P|40|0.01|10|1|1|0|40|1|1|1||1|*||0|0|0|||||||||||||||| 
  *|A1|A1|A7|A16|F|F|F|F|F|F|F||||||||||||||||||||||| 
  *|||||kV|kV|kV|MW|MVAR|S|S|||||||||||||||||||||||| 
  N|I|01|H01N01|H01N01|132|125.4|138.6|0|0||||||||||||||||||||| 
  N|I|01|H01N02|H01N02|20|19|21|0|0||||||||||||||||||||||| 
  N|I|01|H01N03|H01N03|20|19|21|0.42318823|0.204959433||||||||||||||||||||| 
  ||||||||||||||||| 
  ||||||||||||||||| 
  L|I|H010203|H01N02|H01N03|1.884|360|0.41071|0.207886957||3.19E-08|3.19E-08||||||||||| 
  L|I|H010304|H01N03|H01N04|1.62|360|0.35316|0.1787563||3.19E-08||3.19E-08|||||||||||| 
  L|I|H010405|H01N04|H01N05|0.532|360|0.11598|0.058702686||3.19E-08||3.19E-08||||||||||| 
  L|I|H010506|H01N05|H01N06|1.284|360|0.27991|0.14168092||3.19E-08||3.19E-08|||||||||||| 
  S|SH01|SEZIONE01|1|-3|+3|-100|+100||||||||||||||||||| 
  S|SH02|SEZIONE02|1|-3|+3|-100|+100||||||||||||||||||| 
  S|SH03|SEZIONE03|1|-3|+3|-100|+100||||||||||||||||||| 
  ||||||||||||asasasas 
  S|SH04|SEZIONE04|1|-3|+3|-100|+100||||||||||||||||||| 
  *|comment 
  S|SH05|SEZIONE05|1|-3|+3|-100|+100|||||||||||||||||||
  </code></pre>
  
  <p>I'd like it to look like:</p>
  
  <pre><code>*|V|0|0|0|t|0|1|1|4|11|T4|H01|||||||||||||||||||||| 
  *|comment 
  *|comment 
  P|40|0.01|10|1|1|0|40|1|1|1||1|*||0|0|0|||||||||||||||| 
  *|A1|A1|A7|A16|F|F|F|F|F|F|F||||||||||||||||||||||| 
  *|||||kV|kV|kV|MW|MVAR|S|S|||||||||||||||||||||||| 
  N|I|01|H01N01|H01N01|132|125.4|138.6|0|0||||||||||||||||||||| 
  N|I|01|H01N02|H01N02|20|19|21|0|0||||||||||||||||||||||| 
  N|I|01|H01N03|H01N03|20|19|21|0.42318823|0.204959433||||||||||||||||||||| 
  *|comment|||||||||||||||| 
  *|comment||||||||||||||||| 
  L|I|H010203|H01N02|H01N03|1.884|360|0.41071|0.207886957||3.19E-08||3.19E-08||||||||||| 
  L|I|H010304|H01N03|H01N04|1.62|360|0.35316|0.1787563||3.19E-08||3.19E-08|||||||||||||| 
  L|I|H010405|H01N04|H01N05|0.532|360|0.11598|0.058702686||3.19E-08||3.19E-08||||||||||| 
  L|I|H010506|H01N05|H01N06|1.284|360|0.27991|0.14168092||3.19E-08||3.19E-08|||||||||||| 
  *|comment 
  *|comment 
  S|SH01|SEZIONE01|1|-3|+3|-100|+100||||||||||||||||||| 
  S|SH02|SEZIONE02|1|-3|+3|-100|+100||||||||||||||||||| 
  S|SH03|SEZIONE03|1|-3|+3|-100|+100||||||||||||||||||| 
  S|SH04|SEZIONE04|1|-3|+3|-100|+100||||||||||||||||||| 
  S|SH05|SEZIONE05|1|-3|+3|-100|+100||||||||||||||||||| 
  </code></pre>
  
  <p>The data are divided into 'packages' distinct from the first letter (PNLS). Each package must have at least two dedicated lines (* |) which is then read as a comment. The white lines between different letters are filled with character * |. The lines between various letters that do not begin with * | to be added. The white lines and characters 'random' between identical letters are removed.</p>
  
  <p>Perhaps it is clearer in the example files.</p>
  
  <p>How do I manipulate the text? Thank you in advance for the help.</p>