Top-Themen

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

Mitglied: Power-Poler

Power-Poler (Level 1) - Jetzt verbinden

05.06.2013 um 18:40 Uhr, 1597 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
Microsoft Office
Ungleich Text
gelöst Frage von grasihuepferMicrosoft Office1 Kommentar

Hi Leute, Wie kann man eigentlich ungleich in eine Formel setzen? Bei Zahlen kann ich das ja mit "ungleich". ...

Batch & Shell
Text ersetzen mit Batch
gelöst Frage von NeVe29Batch & Shell18 Kommentare

Hallo zusammen, ich frage mich ob folgendes per Batch möglich ist, da ich mich mit Perl rumschlage und es ...

Batch & Shell

Text Datei bestimmte Bereiche lesen und in neue Text schreiben

gelöst Frage von Doktore1Batch & Shell3 Kommentare

Hallo @ all, bin neu hier und habe sehr wenig Erfahrung mit batch Skripten. Ich würde mich sehr freuen ...

Exchange Server

Exchange: MailboxAutoReplyConfiguration - Text Mails?

gelöst Frage von NetzwerkDudeExchange Server4 Kommentare

Moin, aktuell trage ich AutoMailboxantworten per Skript mit HTML Syntax ein, entsprechend sind die Mails die verschieckt werden HTML ...

Neue Wissensbeiträge
Off Topic
Noch mehr was ich nicht brauche
Information von brammer vor 2 TagenOff Topic6 Kommentare

Hallo, WOFÜR? WARUM? brammer

Windows Server

Windows Server 2016 Suche nicht funktioniert ist ausgegraut Windows Server 2016 Search not work

Erfahrungsbericht von Wano347 vor 3 TagenWindows Server

Hallo Leute, wir haben vor kurzem ein Problem gehabt: Windows Server 2016 frisch installiert. Nach Checkliste konfiguriert (sieht vor ...

Microsoft Office

Microsoft geht nun rechtlich gegen Lizengo vor - Billig Software

Information von takvorian vor 3 TagenMicrosoft Office9 Kommentare

Hallo zusammen, eben auf CRN gefunden, weis nicht ob das schon wer gepostet hat Microsoft verklagt Lizengo Gruß Tak

Firewall
Übernahme von SOPHOS durch Thoma Bravo
Information von Dilbert-MD vor 4 TagenFirewall3 Kommentare

Kam die Tage per Newsletter: Zitat: " Das Sophos Board of Directors hat gestern bekanntgegeben, dass die Private-Equity-Investment-Firma Thoma ...

Heiß diskutierte Inhalte
Router & Routing
Macht es schon Sinn IPv6 Adressen einzusetzen ?
Frage von mario89Router & Routing11 Kommentare

Hallo Leute, bitte entschuldigt die vielleicht blöde frage, aber ich wollte gerne mal hören, ob im Professionellen Umfeld IPv6 ...

Batch & Shell
Batch - Datei über das Kontextmenü (Senden an) des Windows Explorer umbenennen
gelöst Frage von AlfornoBatch & Shell10 Kommentare

Hallo, ich möchte eine beliebige Word Datei mittels Batch umbenennen. Als Ergebnis soll der neue Dateiname das Änderungsdatum sowie ...

Switche und Hubs
Zwei VLANs über Trunks über zwei Layer3-Switche per Glasfaser verbinden
Frage von FreundlicherSwitche und Hubs9 Kommentare

Hi, leider habe ich weder in der Berufsschule aufgepasst, noch in der Ausbildung das Thema praktisch behandelt (kleiner Betrieb). ...

Batch & Shell
Batch variable in nächste batch mitnehmen
Frage von BytexxBatch & Shell8 Kommentare

Hallo ich möchte ein kleines .bat programm schreiben und habe eine frage. wie kann ich ein installations pfad herrausfinden ...