Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Text Zeilenweise ausgeben

Frage Entwicklung

Mitglied: Power-Poler

Power-Poler (Level 1) - Jetzt verbinden

05.06.2013 um 18:40 Uhr, 1483 Aufrufe, 4 Kommentare, 1 Danke

Hallo
Hänge gerade an einem kleineren größeren Problem

Und zwar versuche ich eine Textausgabe für einen beliebig langen String zu realisieren.
Dieser soll ab einem bestimmten Punkt einen Zeilenumbruch machen, sodass der Text nicht unendlich nach rechts läuft.
Habe es jetzt so gelöst, das es für die ersten 5 Zeilen funktionieren würde, wenn der Text aber länger als 5 Zeilen ist funktioniert es wider nicht, und ich müsste es für unendlich viele Zeilen umsetzen, was ja nicht möglich ist.

01.
			if (i>80 && i<100 && Text.equals(" ") && Zeile1){ 
02.
				oben.replaceText("\n", i-1, i-1); 
03.
				Zeile1 = false;
Diesen Aufbau habe ich für die ersten 5 Zeilen gewählt.
i ist die Lauf variable, die Position des Zeichens im Text enthält, welches gerade ausgegeben wird.
Der String wird Buchstabe für Buchstabe ausgegeben, und daher ist bekannt, an welcher Position es sich im Text befindet.
80 und 100 ist die Position im Text, also zurzeit frage ich ob sich i zwischen 80 und 100 (bzw später 180 und 200 usw) befindet, ob sich an der stelle ein Leerzeichen befindet, und ob schon ein Zeilenumbruch in der Zeile gemacht wurde.
Sollten alle Bedingungen erfühlt sein, wird an dieser Textpostion ein Zeilenumbruch durch /n erzwungen, i um 1 zurückgesetzt, damit die Zeichenposition im String wider stimmt, und die Ausgabe keine Zeichen verschluckt.

Habe keine Idee, wie ich das für unendlich viele Zeichen umsetzen könnte.
i Läuft solange wie es Zeichen im Text gibt, habe mir schon überlegt, ob ich mit Modulo fragen kann, wo sich i befindend, ,also i%100 == 0bzw (i-20)%80 == 0
Aber dann habe ich nur genau diese zwei Positionen im Text, aber nicht zwischen genau diesen.
Glaube aber das es sowieso der falsch Ansatz ist, und ich mich jetzt noch Stunden (Tage) daran aufhalten werden.
Daher frage ich jetzt einfach mal, ob ihr noch eine Idee habt.

Schonmal Danke für eine Antwort
Mfg
Power-Poler
Mitglied: Arano
05.06.2013, aktualisiert um 19:48 Uhr
Hallo,

also die Position des möglichen, neuen Zeilenumbruchs ist doch Variable... warum verwendest du dann keine Variablen ?
Hm... und wenn 20 Zeichen als Spielraum nicht ausreichen ? (s. Zeile 3 meines Codes, so geschrieben __sind es__ 20 Zeichen !) (21 Zeichen wenn ich "ä" gegen "ae" tausche )
01.
$txtLenth = strlen( $langertext ); 
02.
$l = 80; // Zeilen_L_änge 
03.
$z = 20; // Zeilenlängen_Z_ugabe 
04.
$a = $l
05.
$b = $a+$z
06.
for( $i=0; $i<$txtLenth; ++$i
07.
08.
    if( $i>$a && $i<$b && Text.equals(" ") ) 
09.
10.
        echo "Leerzeichen gefunden an $i, zwischen Position $a bis $b"
11.
        // ...ersetze Leerzeichen durch Zeilenumbruch... 
12.
        $a = $i+$l; // neue Startposition = aktuelle Position plus Mindestzeilenlänge 
13.
        $b = $a+$z; // neue Endposition = neue Startposition plus Zugabe 
14.
         
15.
        continue; // ...um mit dem nächstem Schleifendurchlauf zu beginnen... Zeilenumbruch wurde ja erzeugt ! 
16.
17.
     
18.
    // Notfall Zeilenumbruch...  ( $i IST größer als $b
19.
    if( $i>$b
20.
21.
        // ...füge Zeilenumbruch ein... 
22.
        $a = $i+$l
23.
        $b = $a+$z
24.
25.
}
Sollte so (oder so ähnlich) doch funktionieren

...ein Bisschen aufgeräumter...
01.
$txtLenth = strlen( $langertext ); 
02.
$l = 80; // Zeilen_L_änge 
03.
$z = 20; // Zeilenlängen_Z_ugabe 
04.
$a = $l
05.
$b = $a+$z
06.
for( $i=0; $i<$txtLenth; ++$i
07.
08.
    if( $i<$a ) // die Zeichen vor Position $a interessieren uns nicht 
09.
        continue
10.
    // ab hier ist $i immer größer als $a 
11.
     
12.
    if( $i>$b ) // sollte $i tatsächlich mal größer als $b sein 
13.
14.
        // NOTFALL Zeilenumbruch 
15.
        $a = $i+$l
16.
        $b = $a+$z
17.
        continue
18.
19.
    // ab hier ist $i immer zwischen/an Position $a bis $b 
20.
 
21.
    if( Text.equals(" ") ) // wenn Leerzeichen gefunden... 
22.
23.
        echo "Leerzeichen gefunden an $i, zwischen Position $a bis $b"
24.
        // ...ersetze Leerzeichen durch Zeilenumbruch... 
25.
        $a = $i+$l; // neue Startposition = aktuelle Position plus Mindestzeilenlänge 
26.
        $b = $a+$z; // neue Endposition = neue Startposition plus Zugabe 
27.
28.
}

~Arano
Bitte warten ..
Mitglied: Power-Poler
05.06.2013 um 21:02 Uhr
Danke, funktioniert einwandfrei, und hat scheinbar gleiche ein anderes Problem mit gelöst, warum weiß ich zwar jetzt nicht, aber die Zeilenumbrüche bleiben beim auslesen erhalten, was sie vorher nicht gemacht haben.
Und ich habe noch einen Fehler im meinem code ausfindig gemacht, das i-1 ist misst.
er gibt zwar alle Zeichen aus, trennt aber mitten im Wort. Ohne das -1 geht es. Naja
Vielen dank für deine Hilfe!
Bitte warten ..
Mitglied: Arano
05.06.2013 um 21:15 Uhr
Hi,

Danke, funktioniert einwandfrei
HA, das freut mich, jetzt kann ich zufrieden schlafen gehen...

Frage noch als gelöst markieren und dann sind auch andere glücklich


~Arano
Bitte warten ..
Mitglied: Power-Poler
05.06.2013 um 22:09 Uhr
Da war ja was.
Hab ich ganz vergessen, werde ich sofort nachholen
Bitte warten ..
Ähnliche Inhalte
C und C++
gelöst Morsecode in map speichern und text in morsecode ausgeben (13)

Frage von How-To zum Thema C und C ...

Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Java
gelöst Textdatei in Array speichern (zeilenweise) (1)

Frage von Bruchsal zum Thema Java ...

Batch & Shell
gelöst Datei zeilenweise auslesen - es passiert aber nichts (3)

Frage von Nagus zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Humor (lol)
Freidach Beitrag (34)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Windows 7
SSD - Win7 Lags (19)

Frage von ph5555 zum Thema Windows 7 ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...