Je dois diviser certaines informations à partir d'un astérisque délimité par des données.Manipulation de chaînes: Division de données délimitées
Format des données:
NAME*ADRESS LINE1*ADDRESS LINE2
Règles:
1. Name should be always present
2. Address Line 1 and 2 might not be
3. There should be always three asterisks.
échantillons:
MR JONES A ORTEGA*ADDRESS 1*ADDRESS2*
Name: MR JONES A ORTEGA
Address Line1: ADDRESS 1
Address Line2: ADDRESS 2
A PAUL*ADDR1**
Name: A PAUL
Address Line1: ADDR1
Address Line2: Not Given
Mon algo est:
1. Iterate through the characters in the line
2. Store all chars in a temp variables until first * is found. Reject the data if no char is found before first occurence of asterisk. If some chars found, use it as the name.
3. Same as step 2 for finding address line 1 and 2 except that this won't reject the data if no char is found
Mon algo a l'air moche. Le code semble plus laid. La division en utilisant // * ne fonctionne pas non plus puisque le nom peut être remplacé par la ligne d'adresse 1 si les données étaient * Adresse 1 * Adresse2. Toute suggestion?
EDIT:
Essayez d'utiliser les données à l'exception des citations "-MS DEBBIE VERT * 1036 Pinewood CRES **"
Pourriez-vous clarifier pourquoi vous ne pouvez pas utiliser split? Je n'ai pas tout à fait compris cette partie "nom peut être remplacé par adresse". – bezmax
Si les données sont * Adresse 1 * Adresse2, la division créera deux index dans le tableau où l'index 0 aura la valeur de l'adresse 1 et l'index 2 aura la valeur de l'adresse 2. Comment puis-je valider le nom? Il n'y a pas de nom! –
J'ai expliqué comment vous vous trompez dans ma réponse ci-dessous. – bezmax