2009-06-03 20 views
0

Flex 3.Comment diviser du texte par des lignes

J'ai créé un objet TextArea. Puis j'ai tapé du texte dedans. Ensuite, j'ai obtenu ce texte en utilisant la propriété TextArea.text.

Comment puis-je fractionner le texte obtenu par lignes et le convertir en tableau de chaînes?

Répondre

1

Si "\ n" ne fonctionne pas pour vous, essayez "\ r" (retour chariot). Voici un code montrant comment il travaillerait - il suffit de taper dans la boîte et vous verrez le contenu du tableau changent:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete(event)"> 

    <mx:Script> 
     <![CDATA[ 

      import mx.events.CollectionEvent; 
      import mx.collections.ArrayCollection; 
      import mx.events.FlexEvent; 

      [Bindable] 
      private var ac:ArrayCollection; 

      protected function onCreationComplete(event:FlexEvent):void 
      { 
       ac = new ArrayCollection(); 
       ac.addEventListener(CollectionEvent.COLLECTION_CHANGE, onCollectionChange);  
      } 

      protected function onKeyUp(event:KeyboardEvent):void 
      { 
       ac.source = event.target.text.split("\r"); 
      } 

      protected function onCollectionChange(event:CollectionEvent):void 
      { 
       contents.text = ac.source.join("\r");   
      } 

     ]]> 
    </mx:Script> 

    <mx:TextArea id="input" x="19" y="22" width="273" height="175" keyUp="onKeyUp(event)" /> 
    <mx:TextArea id="contents" x="112" y="249" width="180" height="175" editable="false" /> 
    <mx:Label x="19" y="222" text="Array Length:" fontWeight="bold" /> 
    <mx:Label x="37" y="250" text="Contents:" fontWeight="bold" /> 
    <mx:Label x="111" y="222" text="{ac.length}" /> 

</mx:Application> 

it helps!

+0

merci beaucoup !!! c'est juste ce dont j'ai besoin! – simplemagik

0

Qu'est-ce que "split by lines" signifie pour vous? La chose habituelle est de scanner le texte pour le dernier blanc avant textwidth, et appelez cela une ligne.

+0

J'ai besoin de convertir le texte multiligne dans le tableau de chaînes, où chaque élément est une ligne séparée (chaîne de texte?) – simplemagik

0

Selon this site, le caractère pour un flux d'alimentation de ligne est "\ n". En utilisant la fonction Split() avec "\ n", vous devriez être capable de diviser la chaîne en un tableau de chaînes séparées par des retours à la ligne.

+0

c'était ma première pensée pour résoudre ce problème de cette façon. Mais ça ne marche pas! – simplemagik

Questions connexes