Maison  >  Article  >  Tutoriel logiciel  >  Excel détermine que les lignes répondent aux exigences

Excel détermine que les lignes répondent aux exigences

王林
王林avant
2024-01-12 18:48:32754parcourir

Excel détermine que les lignes répondent aux exigences

Insérez le bouton de commande dans Sheet2 et programmez-le comme suit :

Sous-CommandButton1_Click() privé

Dim i1 aussi longtemps, i2 aussi longtemps

Dim a$, b$

i2 = 2

Do While Range("C" & i2) ""

un$ = ""

b$ = ""

i1 = 1

Feuilles de travail Do While ("Sheet1").Range("C" & i1) ""

Si Feuilles de calcul("feuille1").Range("C" & i1) = Range("C" & i2) Alors

a$ = a$ & Feuilles de calcul("sheet1").Range("A" & i1) & ";"

b$ = b$ & Feuilles de calcul("sheet1").Range("B" & i1) & ";"

Fin si

i1 = i1 + 1

Boucle

Si a$ "" Alors a$ = Gauche(a$, Len(a$) - 1)

Si b$ "" Alors b$ = Gauche(b$, Len(b$) - 1)

Plage("A"& i2) = a$

Plage("B"& i2) = b$

i2 = i2 + 1

Boucle

Fin du sous-marin

Comment obtenir les plusieurs lignes de texte avant et après une chaîne spécifique sous Linux

Cette ligne de commande peut vous aider à supprimer le bloc de validation contenant Merge (tout bloc de texte de ce type)

sed -n '/commit/{:a;h;n;/Merge/b;:c;H;n;$bd;/commit/!bc;:d;x;p;x;ba}' journal > log.txt

L'effet de l'opération est le suivant :

Excel détermine que les lignes répondent aux exigences

Ma commande est peut-être un peu compliquée. Une petite explication, juste pour référence :

Parmi eux : a :b :c :d est l'étiquette de saut de commande

1. /commit/{:a;h;n;

Lorsqu'une ligne de validation est trouvée, copiez cette ligne dans l'espace de conservation et lisez la ligne suivante.

2. /Fusionner/b;

Si la nouvelle ligne que vous venez de lire contient Merge, terminez le traitement de cette ligne, lisez la ligne suivante et continuez à rechercher le commit

Si la nouvelle ligne que vous venez de lire ne contient pas Merge, continuez à exécuter les commandes suivantes sur cette ligne :

3. :c;H;n;$bd;/commit/!bc;:d;x;p;x;ba}

Ajoutez cette ligne à l'espace d'attente et lisez la ligne suivante. Si la dernière ligne n'est pas atteinte et que la validation n'est pas trouvée, exécutez la commande bc et passez à l'étiquette c - bouclez ce processus jusqu'à ce que la fin du fichier soit lue. ou lisez Aller à la ligne contenant le commit. Ensuite, x, échange le contenu de l'espace de maintien avec le contenu de l'espace de modèle, p, génère le contenu de l'espace de modèle (c'est-à-dire le bloc qui ne contient pas la fusion), x, l'échange à nouveau et le l'espace de modèle devient le contenu précédent (la fin du fichier ou contient la ligne de validation). ba, passez à l'étiquette a, continuez à vérifier cette ligne et répétez les étapes 1, 2 et 3.

Si la commande ci-dessus est modifiée en :

sed -n '/commit/{:a;h;n;/Merge/!b;:c;H;n;$bd;/commit/!bc;:d;x;p;x;ba}' journal > log.txt

Ensuite, le résultat de sortie est uniquement le bloc de validation contenant Merge

Lire les données et le nombre de lignes et de colonnes dans le fichier TXT dans MFC

Comme il existe des données à 1 chiffre et des données à 4 chiffres, s'il n'y a pas de retour chariot spécial dans le txt, le nombre de lignes et de colonnes ne peut pas être déterminé. S'il y a un retour chariot, utilisez simplement

#inclure

char *strtok( char *str1, const char *str2 );

Ce sera résolu.

Utilisez d'abord getline() pour lire une chaîne par ligne et additionner le nombre de lignes, puis

char *résultat = NULL;

chaîne de caractères[100][100];

int x = 0;

résultat = strtok( str, " ");

while( résultat != NULL ) {

strcpy(string[x++] , résultat);

résultat = strtok( NULL, " " );

}

De cette façon, toutes les données peuvent être enregistrées à l'aide d'un tableau de chaînes. x enregistre le nombre total, puis x divisé par le nombre de lignes correspond au nombre de colonnes.

Je suis libre aujourd'hui, je vais vous aider à rédiger l'intégralité du programme :

#inclure

#inclure

#inclure

en utilisant l'espace de noms std;

void main(){

char ch[100] = "

char b[100][100];

int x=0,y=0;

ifstream fin("123.txt",ios::in);

fin.getline(ch,100);

pendant(!fin.eof()){

++x;

cout char *résultat = NULL;

résultat = strtok(ch,",");

while( résultat != NULL ) {

strcpy(b[y++],résultat);

cout résultat = strtok( NULL, "," );

}

memset(ch,0,100);

fin.getline(ch,100);

}

fin.close();

}

//Il a déjà été exécuté, pas de problème, b[100][100] correspond à tous les éléments, x est le nombre de lignes, y/x est le nombre de colonnes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer