Parse error at " end "

7 次查看(过去 30 天)
I have an parse error at ''end'' at the end of the code and I don't know why. Please help. I know I have other errors, I still haven't finish the program. I'm just trying to solve this one first.
classdef Plateforme < handle
% Caractéristiques ou données encapsulées
properties (Access = private)
nbBanques = 0;
banques = [];
end
% Comportements
methods
% Methode qui charge la base de donnees
function ChargerBaseDeDonnees(obj)
% Importer les constantes
ImporterConstantes
% Fixer la semence aleatoire
rng(0)
% Lire la base de donnees
FID = fopen(CHEMIN_BD, 'r');
texte = {};
while ~feof(FID)
texte{end + 1} = fgetl(FID);
end
fclose(FID);
% Reconstruire la base de donnees
% Le nombre de banques
temp = strsplit(texte{1}, ':');
nombreBanques = str2double(temp{end});
% La ligne qui contient le nom de la banque
ligneNomBanque = 2;
for i = 1 : nombreBanques
% Nom de la banque
temp = strsplit(texte{ligneNomBanque}, ':');
nomBanque = strtrim(temp{end});
% Numero d'institution de la banque
temp = strsplit(texte{ligneNomBanque + 1}, ':');
numeroInstitution = strtrim(temp{end});
% Initialiser la banque
listeBanques(i) = Banque(nomBanque, numeroInstitution);
% Le nombre de client de la banque
temp = strsplit(texte{ligneNomBanque + 2}, ':');
nbClients = str2double(temp{end});
% La ligne qui contient le prénom du client
lignePrenomClient = ligneNomBanque + 5;
for j = 1 : nbClients
% Prenom du client
temp = strtrim(strsplit(texte{lignePrenomClient}, ':'));
prenom = temp{end};
% Nom de famille du client
temp = strtrim(strsplit(texte{lignePrenomClient + 1}, ':'));
nom = temp{end};
% Numero d'assurance sociale du client
temp = strtrim(strsplit(texte{lignePrenomClient + 2}, ':'));
numeroAssuranceSociale = temp{end};
% Creer le client
unClient = Client(prenom, nom, numeroAssuranceSociale);
% Nombre de comptes du client
temp = strsplit(texte{lignePrenomClient + 3}, ':');
nbComptes = str2double(temp{end});
% La ligne qui contient le solde du comptes de cheques du client
ligneSoldeCheque = lignePrenomClient + 5;
% Charger tous les comptes
for k = ligneSoldeCheque : 3 : ligneSoldeCheque + 3 * (nbComptes - 1)
% Lire le solde du compte cheques
temp = strsplit(texte{k}, ':');
soldeCheque = str2double(temp{end});
% Lire le solde du compte epargne
temp = strsplit(texte{k + 1}, ':');
soldeEpargne = str2double(temp{end});
% Instancier le compte
unCompte = Compte(soldeCheque, soldeEpargne);
% Le client est desormais le proprietaire du compte
unCompte.proprietaire = unClient;
% Ajouter le compte a la banque
listeBanques(i).AjouterCompte(unCompte, unClient);
end
% Ajouter le client a la banque
listeBanques(i).AjouterClient(unClient);
% Ligne du prochain client
lignePrenomClient = k + 3;
end
% Ligne de la prochaine banque
ligneNomBanque = lignePrenomClient - 1;
end
% Enregistrer les parametres dans la plateforme
obj.nbBanques = nombreBanques;
obj.banques = listeBanques;
end
% Accesseurs (get.) pour la position du nombre de banque
function positionNbBanques = getNbBanques(obj)
positionNbBanques = obj.nbBanques;
end
%Méthode 3
function AnalyserJournalTransactions(obj,nomTexte)
validateattributes(nomTexte,{'char'},{'scalartext'})
FID = fopen(nomTexte,'r');
assert(FID ~= -1,'Erreur d"ouverture de fichier.');
data = textscan(FID,'%f %s %f %s %f','Delimiter',',');
fclose(FID);
obj.noInstitution = data(1);
obj.typeTransaction = data(2);
obj.idCompte = data(3);
obj.typeCompte = data(4);
obj.montant = data(5);
end
%methode 4
function GenererRapport(obj,nomRapport)
ImporterConstantes
finTexte = endsWith(nomRapport,'.txt');
if finTexte == 0
nomRapport = [nomRapport,'.txt'];
end
cheminDossier = [CHEMIN_RAPPORTS,'/',nomRapport];
FID = fopen(cheminDossier,'w');
assert(FID ~= -1,'Erreur d"ouverture de fichier.');
for i = 1 : obj.nbBanques
fprintf(FID,'Banque No. %d \n\n',i);
fprintf(FID,'\tNom : \n');
fprintf(FID,'\tNo. institution : \n');
fprintf(FID,'\tNombre de clients : \n');
fprintf(FID,'\tNombre de comptes : \n\n');
fprintf(FID,'\tDétails des comptes clients : \n\n');
for j = 1:
fprintf(FID,'\t\tClient No.%d\n\n',j);
fprintf(FID,'\t\t\tPrénom :\n');
fprintf(FID,'\t\t\tNom :\n\n');
for k = 1:
fprintf(FID,'\t\t\t\tCompte No. %d\n\n',k);
fprintf(FID,'\t\t\t\t\tIdentifiant :\n');
fprintf(FID,'\t\t\t\t\tSolde cheques :\n');
fprintf(FID,'\t\t\t\t\tSolde epargnes :\n\n');
end
fprintf(FID,'\t\t\tTotal cheques :\n');
fprintf(FID,'\t\t\tTotal epargne :\n\n');
end
end
end
end
end
  1 个评论
Guido Gonzalez
Guido Gonzalez 2022-4-15
The error happens at the before last end of the code

请先登录,再进行评论。

采纳的回答

Steven Lord
Steven Lord 2022-4-15
When you get a parse error like this, look for the Code Analyzer messages in the Editor's right margin. Of particular importance are the red Code Analyzer messages indicating problems that are likely to be fatal and prevent your code from running at all. If you click on the first of the red lines you'll see that it's flagging this line:
for j = 1:
You're missing the upper limit of your for loop. The same holds for the for loop over k a few lines later. When I added some dummy upper limits all the red messages went away. If this is part of the code that you're planning to work on, maybe just give it a dummy limit, say 1:1, and add a comment you can search for to find the work you need to complete. % TODO is a popular choice for such a comment.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

标签

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by