Faits:
Faits:
A. Par décision du 20 février 2004, le Procureur général du canton de Genève a classé une plainte pénale déposée par X._ contre le directeur d'une institution sociale, pour détournement. Après avoir recueilli les observations de la personne mise en cause, le Procureur a estimé qu'il n'y avait aucun indice de commission d'une infraction.
X._ a saisi la Chambre d'accusation genevoise par acte du 2 mars 2004. Il dénonçait un abus de confiance et une violation de la LSEE, en affirmant que des prestations avaient été indûment versées à un ressortissant étranger.
Par ordonnance du 26 mars 2004, la Chambre d'accusation a déclaré le recours irrecevable: celui-ci ne contenait ni conclusions formelles, ni indications quant à la suite que le recourant entendait donner à l'annulation de la décision attaquée.
Par ordonnance du 26 mars 2004, la Chambre d'accusation a déclaré le recours irrecevable: celui-ci ne contenait ni conclusions formelles, ni indications quant à la suite que le recourant entendait donner à l'annulation de la décision attaquée.
B. X._ forme un recours de droit public contre cette dernière ordonnance; se plaignant de discrimination et d'arbitraire, il demande l'annulation de la décision attaquée et le renvoi de la cause à la Chambre d'accusation - dans une nouvelle composition - afin qu'il soit statué à nouveau. Le recourant a ensuite requis l'assistance judiciaire.
La Chambre d'accusation se réfère aux considérants de sa décision. Le Procureur général conclut au rejet du recours. Le recourant a répliqué, sans y être autorisé.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Le recours est formé en temps utile contre une décision finale rendue en dernière instance cantonale. Indépendamment de sa légitimation au fond, le recourant a qualité, au sens de l'art. 88 OJ, pour se plaindre d'une violation de ses droits de partie en instance cantonale (<ref-ruling> consid. 2 p. 300). Le recours de droit public ne peut toutefois tendre qu'à l'annulation de la décision attaquée (<ref-ruling> consid. 1.2 p. 131); la conclusion tendant au renvoi de la cause pour nouvelle décision, avec récusation des juges ayant déjà statué, est dès lors irrecevable. La réplique du recourant, non requise, doit être écartée du dossier.
1. Le recours est formé en temps utile contre une décision finale rendue en dernière instance cantonale. Indépendamment de sa légitimation au fond, le recourant a qualité, au sens de l'art. 88 OJ, pour se plaindre d'une violation de ses droits de partie en instance cantonale (<ref-ruling> consid. 2 p. 300). Le recours de droit public ne peut toutefois tendre qu'à l'annulation de la décision attaquée (<ref-ruling> consid. 1.2 p. 131); la conclusion tendant au renvoi de la cause pour nouvelle décision, avec récusation des juges ayant déjà statué, est dès lors irrecevable. La réplique du recourant, non requise, doit être écartée du dossier.
2. Le recourant se plaint de discrimination (art. 8 al. 2 Cst.) et d'arbitraire (art. 9 Cst.). Selon lui, ses intentions ressortaient clairement de son mémoire de recours: il s'agissait d'obtenir l'ouverture d'une procédure pénale. La constitution de partie civile et la désignation des infractions prétendument commises allaient également dans ce sens.
2.1 L'excès de formalisme, aspect particulier du déni de justice, est prohibé par l'art. 29 al. 1 Cst.: lorsque l'autorité applique une règle de procédure avec une rigueur exagérée ou impose des exigences excessives à l'égard des actes juridiques, elle prive indûment le citoyen d'une voie de droit. Cette garantie constitutionnelle est violée lorsque le strict respect d'une exigence de forme ne se justifie par aucun intérêt digne de protection, devient une fin en soi et empêche ou complique de manière insoutenable la réalisation du droit matériel (<ref-ruling> consid. 2b/aa, 120 II 425 consid. 2a et les arrêts cités). Cette règle est complétée par l'obligation qu'a l'Etat d'agir de bonne foi à l'égard du justiciable (art. 5 et 9 Cst.). L'autorité doit ainsi attirer l'attention du plaideur lorsqu'il apparaît que celui-ci commet une erreur de procédure qui peut encore être réparée (<ref-ruling> consid. 2 p. 22). Par ailleurs, les déclarations et actes de procédure doivent être interprétés par leur destinataire selon le sens qu'on peut raisonnablement et objectivement leur prêter (principe de la confiance).
2.2 Le mémoire adressé à la Chambre d'accusation est désigné comme un recours dirigé contre une décision de classement. Le recourant y revient sur les accusations mentionnées dans sa plainte, et soutient que la personne mise en cause aurait commis un abus de confiance et une violation de la LSEE. L'argumentation du recourant consistait donc à affirmer que, contrairement à ce qu'avait retenu le Procureur général, il existait suffisamment d'indices de commission des infractions dénoncées. Le recours du plaignant ne pouvait évidemment tendre qu'à une annulation de la décision de classement et à la poursuite de la procédure pénale. Dans ces conditions, la décision d'irrecevabilité procède d'un formalisme excessif.
2.2 Le mémoire adressé à la Chambre d'accusation est désigné comme un recours dirigé contre une décision de classement. Le recourant y revient sur les accusations mentionnées dans sa plainte, et soutient que la personne mise en cause aurait commis un abus de confiance et une violation de la LSEE. L'argumentation du recourant consistait donc à affirmer que, contrairement à ce qu'avait retenu le Procureur général, il existait suffisamment d'indices de commission des infractions dénoncées. Le recours du plaignant ne pouvait évidemment tendre qu'à une annulation de la décision de classement et à la poursuite de la procédure pénale. Dans ces conditions, la décision d'irrecevabilité procède d'un formalisme excessif.
3. Le recours de droit public doit par conséquent être admis. Le recourant ayant procédé en personne, il n'est pas alloué de dépens. Conformément à l'art. 156 al. 2 OJ, il n'est pas perçu d'émolument judiciaire. La demande d'assistance judiciaire est dès lors sans objet.

Par ces motifs, vu l'art. 36a OJ, le Tribunal fédéral prononce:
Par ces motifs, vu l'art. 36a OJ, le Tribunal fédéral prononce:
1. Le recours est admis dans la mesure de sa recevabilité et la décision attaquée est annulée.
1. Le recours est admis dans la mesure de sa recevabilité et la décision attaquée est annulée.
2. Il n'est pas perçu d'émolument judiciaire, ni alloué de dépens.
2. Il n'est pas perçu d'émolument judiciaire, ni alloué de dépens.
3. La demande d'assistance judiciaire est sans objet.
3. La demande d'assistance judiciaire est sans objet.
4. Le présent arrêt est communiqué en copie au recourant, au Procureur général et à la Chambre d'accusation du canton de Genève.
Lausanne, le 29 juin 2004
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le président: Le greffier: