ParamStr

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

ParamStr

Beitrag von Stephanie H. »

Hallo, Ich möchte etwas, was man ins Programm eingibt in ParameterStrings speichern (ParamStr),
doch irgenwie klappt das mit den Speichern nicht. Ich glaub, dass liegt an dem "readln;" .

Also das hier ist der Quelltext:

Code: Alles auswählen

IF (ParamCount < 2) OR (ParamCount > 4) THEN 
	BEGIN
		readln;   //Benutzer muss etwas eingeben
	END; 
 
StringVariabel := ParamStr(1);   //fürs 1.Wort
StringVariabel2 := ParamStr(2);  //fürs 2.Wort
StringVariabel3:= ParamStr(3);   //fürs 3.Wort
Danke schonmal im Vorraus,
Viele Grüße Stephanie

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: ParamStr

Beitrag von theo »

Ich dachte: "übrigens ich brauch eure scheiß verdammte hilfe nicht mehr".
Hast du hier geschrieben: http://www.lazarusforum.de/viewtopic.php?p=38113#p38113" onclick="window.open(this.href);return false;

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: ParamStr

Beitrag von Stephanie H. »

halloo?!, jetzt hör doch auf wieder so blöd zu kommen...
das hab ich nur gemeint, weil du mich total aufgeregt hast mit deinen unnötigen Kommentaren:

"Also du stellst dich schon echt blöd an."
"Hirn einschalten? (Wenn vorhanden..."
" Stephanie H. hat geschrieben:ich kann das ja programmieren - Das bezweifle ich."

und mir dabei das Gefühl gegeben hast, dass du mir nicht helfen wolltest, sondern mich eher hier rausmobben..

Außerdem war ich da grad mal 14 und du keine Ahnung wie alt und jetzt bist du total nachtragend. -.-

und heute machst du wieder so ein sinnlosen, unnötigen Kommentar, du regst mich echt auf, obwohl ich dich gar nicht kenne.
Hast du etwa keine Hobbys, als ganze Zeit in Foren zu schreiben und jeden deine Meinung zu geigen?

Socke
Lazarusforum e. V.
Beiträge: 3177
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: ParamStr

Beitrag von Socke »

Mal zum Fachlichen:
Die Parameter werden einem Programm beim Start durch das Betriebssystem übergeben (sie werden vorher durch den Benutzer oder andere Programme eingegeben).
Read() bzw ReadLn() können von der Standardeingabe lesen; hierüber kann man interaktiv mit dem Benutzer reden (wenn man zum "Sprechen" die Standardausgabe verwendet).

Wenn du zu einer bestimmten Funktion nicht weißt, wie du sie verwenden musst, kannst du auf der Portal-Seite dieses Forums unter der Liste mit den aktuellen Beiträgen den Funktionsnamen in dem Suchfeld "Bibliothekssuche" eingeben und in der Dokumentation danach suchen. Für ReadLn: http://lazarus-ccr.sourceforge.net/docs ... eadln.html" onclick="window.open(this.href);return false;

Zum Nicht-Fachlichen:
klärt's unter euch
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: ParamStr

Beitrag von mschnell »

Stephanie H. hat geschrieben:Außerdem war ich da grad mal 14
Sich schon mit 14 mit so etwas "professionellem" wie Programmieren zu beschäftigen ist super. Es wäre dann aber auch gut auch auf "professionellem" Niveau mit den "Kollegen" zu kommunizieren (wobei die da aber auch nicht alle ein immer ein gutes Beispiel geben :( )

-Michael (über 50 Jahre alt und auch nicht immer ein gutes Beispiel weil er öfters schneller tippt als denkt)

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: ParamStr

Beitrag von Stephanie H. »

@socke: bei den Link,den du mir geschickt hast, hab ich mal unter ParamStr und ParamCount geguckt
und da steht, dass ParamStr einen Wert von einer Kommandozeile speichert.
Erzeugt readln() überhaupt eine Kommandozeile?
Also ich hab grad mal mit Writeln ausprobiert , ob die ParamStrings überhaupt etwas speichern und die haben einfach leere Zeilen ausgegeben..
Da erzeugt doch readln keine Kommandozeile, oder etwa doch?

Kennt wer denn noch einen anderen Befehl außer readln, bei der der Nutzer eine Eingabe machen kann und eine Kommandozeile erzeugt wird?

Ich hab noch ne kleine Frage, speichert ParamStr die ganze Zeile oder nur das Wort bist zum Leerzeichen?
Wenn der Nutzer z.B. "zum Beispiel" in einer Zeile eingibt, speichert ParamStr(1) dann "zum" oder die ganze Zeile?

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: ParamStr

Beitrag von shokwave »

Hi,

damit ParamStr() funktioniert, musst du dein Programm von einer Kommandozeile aus starten

Code: Alles auswählen

Projekt1.exe Wort1 Wort2 Wort3
oder in Lazarus, unter "Start/Startparameter" bei "Kommandozeilenparameter" was eintragen. Ich geh mal davon aus, dass du das neue Projekt als "Konsolenanwendung" erstellt hast.

Die zweite Sache, auf die man dich mit dem Link aufmerksam machen wollte, ReadLn() benötigt einen Parameter, nämlich eine Variable, die die Benutzereingabe speichert. z.B.:

Code: Alles auswählen

var s:String;
begin
  writeln('Bitte geben Sie Ihren Namen ein:');
  readln(s);
  writeln('Hallo '+s);
end;
Hoffe das hilft dir weiter.
mfg Ingo

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2805
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: ParamStr

Beitrag von m.fuchs »

Hallo.
Stephanie H. hat geschrieben:@socke: bei den Link,den du mir geschickt hast, hab ich mal unter ParamStr und ParamCount geguckt
und da steht, dass ParamStr einen Wert von einer Kommandozeile speichert.
Erzeugt readln() überhaupt eine Kommandozeile?
Ah, da haben wir doch das Missverständnis. Die Kommandozeile meint in diesem Fall die des Betriebssystems. Wenn du dein Programm (sagen wir mal test.exe) zum Beispiel so startest:

Code: Alles auswählen

test Hallo du
Dann gibt die ParamStr(1) den String 'Hallo' und ParamStr(2) den String 'du' zurück.

Was du aber möchtest ist die Eingabe innerhalb deines Programms. Dafür mal ein kleines Beispiel:

Code: Alles auswählen

program EingabeTest;
 
var
  Eingabe: String;
 
begin
  Write('Hier eingeben: ');
  ReadLn(Eingabe);
  WriteLn('Sie haben folgendes eingegeben: ' + Eingabe);
end.
Probier das einfach mal aus, dann sollte der Gebrauch klar werden. Wenn nicht, sag einfach noch einmal Bescheid.

Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten